过滤Dataframe - 列和行

时间:2015-12-16 06:30:57

标签: python pandas dataframe filtering

我想对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] ,但我对多列或整列没有好主意和行。 有一些简单的方法吗?

1 个答案:

答案 0 :(得分:4)

您可以loc选择any并指定axis

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