我有一个包含以下内容的csv文件:
storeNumber, sale1, sale2
1, 1, 1
2, 0, 0
3, 1, 0
4, 0, 1
...
25, 0, 0
26, 1, 0
27, 0, 1
28, 0,0
我需要删除sale1和sale2等于0的行
我有以下代码设置:
import pandas as pd
df = pd.read_csv('sales.csv', index_col=0)
df_new = df[df.sale1 != 0] and df[df.sale2 != 0]
print(df_new)
如果我只删除每个值为0的列中的一列,则代码可以工作
df_new = df[df.sale1 != 0]
或
df_new = df[df.sale2 != 0]
然而,当把上面的代码加上“and”时,我得到了一个错误,上面说:
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
删除sale1和sale2的值均为0的行的正确代码是什么
另一种编写方法是只保留两列中任何一列不等于零的行
组合这两个逻辑条件所需的To运算符是
&
,而不是and
。这将在here中详细解释。因此,您需要的是:请注意,这两个条件都必须放在括号中,因为
&
结合比!=
强相关问题 更多 >
编程相关推荐