数据框过滤 - 列和行

3

我想对Pandas数据框进行过滤。 示例表格如下。例如,我想过滤(删除)所有包含值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个回答

4

您可以使用 locany 选择并指定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

我之前不知道这个,但它似乎非常有用于处理表格。谢谢你的建议。 - z991

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接