如何删除pandas中所有行的值
我有如下代码:如何删除pandas中所有行的值,pandas,dataframe,Pandas,Dataframe,我有如下代码: 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
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。如何操作?您可以将
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
>>df
蛋白质IHD-CM-ARR-VD-CHD-CCD-VOO
0 q9uku9 0.0 0.039457 0.032901 0.014793 0.006614 0.006591 0.0
1 o75461 0.0 0 0.005832 0.027698 0.000000 0.000000 0.006634 0.0
2 d4acr8 0.0 0.001490 0.003920 0.0000000.0000000.009393 0.0
>>>df.loc[~(df.select_dtypes(float)<0.01)。全部(axis=“columns”)]
蛋白质IHD-CM-ARR-VD-CHD-CCD-VOO
0 q9uku9 0.0 0.039457 0.032901 0.014793 0.006614 0.006591 0.0
1 o75461 0.0 0 0.005832 0.027698 0.000000 0.000000 0.006634 0.0
>>> df
protein IHD CM ARR VD CHD CCD VOO
0 q9uku9 0.0 0.039457 0.032901 0.014793 0.006614 0.006591 0.0
1 o75461 0.0 0.005832 0.027698 0.000000 0.000000 0.006634 0.0
2 d4acr8 0.0 0.001490 0.003920 0.000000 0.000000 0.009393 0.0
>>> df.loc[~(df.select_dtypes(float) < 0.01).all(axis="columns")]
protein IHD CM ARR VD CHD CCD VOO
0 q9uku9 0.0 0.039457 0.032901 0.014793 0.006614 0.006591 0.0
1 o75461 0.0 0.005832 0.027698 0.000000 0.000000 0.006634 0.0