在pandas数据框中,我需要找到在任何行中包含零的列,并删除整列。
例如,如果我的数据框如下所示:
A B C D E F G H
0 1 0 1 0 1 1 1 1
1 0 1 1 1 1 0 1 1
我需要删除A,B,D和F列。我知道如何删除列,但是以编程方式识别带有零的列使我难以理解。
答案 0 :(得分:3)
您可以使用.loc
对数据帧进行切片并在列上执行布尔索引,检查其中是否包含any
0
:
df.loc[:,~(df==0).any()]
C E G H
0 1 1 1 1
1 1 1 1 1
或者等效地,您可以这样做:
df.loc[:,(df!=0).all()]
答案 1 :(得分:0)
尝试一下:
代码:
import pandas as pd
df = pd.DataFrame({'A': [1, 1, 1], 'B': [1, 0, 1]})
for col in df.columns:
if 0 in df[col].tolist():
df = df.drop(columns=col)
df