首页 > 解决方案 > 如何删除熊猫中所有行的值

问题描述

我的代码如下所示:

    protein   IHD         CM          ARR         VD          CHD         CCD         VOO      
0   q9uku9    0.000000    0.039457    0.032901    0.014793    0.006614    0.006591    0.000000    
1   o75461    0.000000    0.005832    0.027698    0.000000    0.000000    0.006634    0.000000

有数千行蛋白质。但是,我想删除 pandas 中所有疾病的所有值都小于 0.01 的。我该怎么做呢?

标签: pandasdataframe

解决方案


您可以loc与 结合使用any。基本上,您希望保留任何值大于或等于 0.01 的所有行。请注意,我调整了您的示例,使第二种蛋白质的所有值均 < 0.01。

import pandas as pd

df = pd.DataFrame([
    ['q9uku9', 0.000000, 0.039457, 0.032901, 0.014793, 0.006614, 0.006591, 0.000000 ],
    ['o75461', 0.000000, 0.005832, 0.007698, 0.000000, 0.000000, 0.006634, 0.000000]
], columns=['protein', 'IHD', 'CM', 'ARR', 'VD', 'CHD', 'CCD', 'VOO'])

df = df.set_index('protein')

df_filtered = df.loc[(df >= 0.01).any(axis=1)]

这使:

         IHD        CM       ARR        VD       CHD       CCD  VOO
protein                                                            
q9uku9   0.0  0.039457  0.032901  0.014793  0.006614  0.006591  0.0

推荐阅读