我有一个数据框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'))
这指定了确切的值,但是如何删除不是数字值的任何值? (以防万一我不知道具体值是什么)
任何建议都值得赞赏
答案 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