我想对Pandas Dataframe执行过滤。 样本表如下所示。例如,我想过滤(删除)包含值2的所有列。
C1 C2 C3 C4 C5
1 1 1 1 4
1 2 1 2 5
1 1 3 1 4
我想要这样的结果表。 (C2和C4已删除)
C1 C3 C5
1 1 4
1 1 5
1 3 4
另外,我想使用值5在行上完成这项工作。
C1 C3 C5
1 1 4
1 3 4
我可以非常轻松地对单列或行进行操作,例如 df = df [df.C2!= 2] ,但我对多列或整列没有好主意和行。 有一些简单的方法吗?
答案 0 :(得分:4)
print df
C1 C2 C3 C4 C5
0 1 1 1 1 4
1 1 2 1 2 5
2 1 1 3 1 4
print ~(df == 2)
C1 C2 C3 C4 C5
0 True True True True True
1 True False True False True
2 True True True True True
df = df.loc[:, ~(df == 2).any(axis=0)]
print df
C1 C3 C5
0 1 1 4
1 1 1 5
2 1 3 4
df = df.loc[~(df == 5).any(axis=1)]
print df
C1 C3 C5
0 1 1 4
2 1 3 4