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

Python 使用熊猫删除列中除数值以外的所有值,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

我有一个数据帧,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'))
这指定了确切的值,但如何删除任何非数值的值?(以防我不知道具体值是多少)


非常感谢您的任何建议

请尝试以下内容,我已经在手机上写了这篇文章,但无法测试它是否可以工作

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()?谢谢,让我现在试试这个-我的其他一些列有其他数据,这也会从它们中删除吗?这只是两个具体的列大小和总数,我希望删除非数字值。这工作非常好。是的,我想添加更多细节,这可能会让我走上正确的道路。我会尝试。这也很好用