使用熊猫删除一列中除数值以外的所有数值

时间:2020-10-02 20:37:38

标签: python pandas numpy

我有一个数据框df

        Size                  Total           ID
    
        110 TB                200 TB          A
        110 G                 300 G           B
        500 A                 700 A           C

所需的输出:

        Size                  Total         ID
    
        110                   200           A
        110                   300           B
        500                   700           C

我在做什么:

  df[['Size','Total']] = df[['Size','Total']].apply(lambda x: 
  x.str.strip(' TB', 'G'))

这指定了确切的值,但是如何删除不是数字值的任何值? (以防万一我不知道具体值是什么)

任何建议都值得赞赏

2 个答案:

答案 0 :(得分:4)

能否请您尝试以下操作,我已经在移动设备上编写了此文档,但无法测试它是否可以正常工作。

import pandas as pd
df.replace(to_replace=r'[^0-9]+', value='', regex=True)

用数字除以空以外的所有内容即可。

答案 1 :(得分:2)

只是一个额外的信息,我确实这样做,却得到了相反的:D

import pandas as pd
df.replace(to_replace=r'[^a-zA-Z#]', value='', regex=True)

    Size    Total
  0   TB    TB
  1   G      G
  2   A      A

由于您更改了问题,所以我确实是这样,也许有人可能会有更好的答案。

df['Size'] = df['Size'].str.replace("[^[^0-9]+", " ") 
df['Total'] = df['Total'].str.replace("[^[^0-9]+", " ") 
df

output:

   Size Total   ID
0   110  200    A
1   100  300    B
2   500  700    C