如何正确删除Pandas中列中的所有文本?

2024-05-15 05:22:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧:

df:

+-----+-------------------------+------------------------------+-------------+-------------+-------------+--------------+--------------+--------------------------+------------------------------+---------------------+
|     | country                 | league                       | home_odds   |   draw_odds |   away_odds |   home_score | away_score   | home_team                | away_team                    | datetime            |
+=====+=========================+==============================+=============+=============+=============+==============+==============+==========================+==============================+=====================+
|  63 | Chile                   | Primera Division             | 2.80        |        3.05 |        2.63 |            3 | 1            | Melipilla                | O'Higgins                    | 2021-06-07 00:30:00 |
+-----+-------------------------+------------------------------+-------------+-------------+-------------+--------------+--------------+--------------------------+------------------------------+---------------------+
|  64 | North & Central America | CONCACAF Nations League      | 2.95        |        3.07 |        2.49 |            3 | 2 ET         | USA                      | Mexico                       | 2021-06-07 01:00:00 |
+-----+-------------------------+------------------------------+-------------+-------------+-------------+--------------+--------------+--------------------------+------------------------------+---------------------+
|  66 | World                   | World Cup 2022               | 1.04        |       13.43 |       28.04 |            0 | 1            | Kyrgyzstan               | Mongolia                     | 2021-06-07 07:00:00 |
+-----+-------------------------+------------------------------+-------------+-------------+-------------+--------------+--------------+--------------------------+------------------------------+---------------------+
|  65 | World                   | Friendly International       | 1.52        |        3.91 |        7.01 |            1 | 1            | Serbia                   | Jamaica                      | 2021-06-07 07:00:00 |
+-----+-------------------------+------------------------------+-------------+-------------+-------------+--------------+--------------+--------------------------+------------------------------+---------------------+

我希望列home_scoreaway_score仅为整数,我尝试将regex设置为:

df[['home_score', 'away_score']] = re.sub('\D', '', '.*')

然而,所有列都是空白的

我如何正确地做到这一点


Tags: 数据dfhomeworlddatetimecountryteamdivision
2条回答

你可以做df[['home_score', 'away_score']] = df[['home_score', 'away_score']].applymap(lambda x: int(float(x)))

您可以通过extract()astype()方法进行尝试:

df['away_score']=df['away_score'].str.extract('^(\d+)').astype(int)
df['home_score']=df['home_score'].str.extract('^(\d+)').astype(int)

df['away_score']=df['away_score'].str.extract('([0-9]+)').astype(int)
df['home_score']=df['home_score'].str.extract('([0-9]+)').astype(int)

输出:

+  -+            -+               +      -+      -+      -+       +       +             +               +          -+
|     | country                 | league                       | home_odds   |   draw_odds |   away_odds |   home_score | away_score   | home_team                | away_team                    | datetime            |
+=====+=========================+==============================+=============+=============+=============+==============+==============+==========================+==============================+=====================+
|  63 | Chile                   | Primera Division             | 2.80        |        3.05 |        2.63 |            3 | 1            | Melipilla                | O'Higgins                    | 2021-06-07 00:30:00 |
+  -+            -+               +      -+      -+      -+       +       +             +               +          -+
|  64 | North & Central America | CONCACAF Nations League      | 2.95        |        3.07 |        2.49 |            3 | 2            | USA                      | Mexico                       | 2021-06-07 01:00:00 |
+  -+            -+               +      -+      -+      -+       +       +             +               +          -+
|  66 | World                   | World Cup 2022               | 1.04        |       13.43 |       28.04 |            0 | 1            | Kyrgyzstan               | Mongolia                     | 2021-06-07 07:00:00 |
+  -+            -+               +      -+      -+      -+       +       +             +               +          -+
|  65 | World                   | Friendly International       | 1.52        |        3.91 |        7.01 |            1 | 1            | Serbia                   | Jamaica                      | 2021-06-07 07:00:00 |
+  -+            -+               +      -+      -+      -+       +       +             +               +          -+

相关问题 更多 >

    热门问题