Python 使用熊猫删除列中除数值以外的所有值
我有一个数据帧,dfPython 使用熊猫删除列中除数值以外的所有值,python,pandas,numpy,Python,Pandas,Numpy,我有一个数据帧,df Size Total ID 110 TB 200 TB A 110 G 300 G B 500 A 700 A C 期望输出: Size Tota
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'))
这指定了确切的值,但如何删除任何非数值的值?(以防我不知道具体值是多少)
非常感谢您的任何建议请尝试以下内容,我已经在手机上写了这篇文章,但无法测试它是否可以工作
import pandas as pd
df.replace(to_replace=r'[^0-9]+', value='', regex=True)
只需将除数字以外的所有内容替换为空。只是一个额外的信息,我这样做了,得到了相反的结果: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
df.stack()?谢谢,让我现在试试这个-我的其他一些列有其他数据,这也会从它们中删除吗?这只是两个具体的列大小和总数,我希望删除非数字值。这工作非常好。是的,我想添加更多细节,这可能会让我走上正确的道路。我会尝试。这也很好用