我有一个数据框。 2列的值:
A B
1 3
4 2
2 5
6 3
- -
4 4
或
A B
1 3
4 2
2 5
6 3
0 0
4 4
有时候我的差距为零,有时是-
。
我写了一个脚本来处理这些文件。它的一部分是删除带有间隙的行。无论是0
还是-
。
我写了这样的东西:
df = df[df[0] != '-']
df = df[df[1] != '-']
df = df[df[0] != '0']
df = df[df[1] != '0']
我得到了一个没有0和-的df。 但是我认为这不是最好的代码。如果我很了解,我会浪费内存来创建df的副本。
我应该如何编写这样的代码(在此示例中)以正确正确地进行操作?有人可以分享建议吗?
答案 0 :(得分:3)
您可以使用|
操作符创建2个布尔掩码,该操作符使用df.eq()
和{{3}检查行中的所有列是-
还是0
}在axis=1
上:
df[~(df.eq('-').all(1)|df.eq(0).all(1))]
A B
0 1 3
1 4 2
2 2 5
3 6 3
5 4 4