【发布时间】:2021-07-12 16:24:41
【问题描述】:
我有一个数据集(df)如下:
当 SKU 为“abc”且包装为“1KG”和“5KG”时,我想根据条件删除行。
我尝试过使用以下代码:
df.drop( df[ (df['SKU'] == "abc") & (df['Packing'] == "10KG") & (df['Packing'] == "5KG") ].index, inplace=True)
尝试上述代码时出现以下错误:
NameError Traceback (most recent call last)
<ipython-input-1-fb4743b43158> in <module>
----> 1 df.drop( df[ (df['SKU'] == "abc") & (df['Packing'] == "10KG") & (df['Packing'] == "5KG") ].index, inplace=True)
NameError: name 'df' is not defined
对此的任何帮助将不胜感激。谢谢。
【问题讨论】:
-
“NameError: name 'df' is not defined”有什么困惑?您从未定义变量 df。
-
你确定你的DataFrame被称为
df吗?可以打印df.head()来验证吗? -
欢迎来到 StackOverflow!这里的问题是你没有定义
df。请查看如何创建minimal reproducible example 和How to Ask。除其他事项外,这些教程将告诉您不包含数据框的图像。相反,将其复制并粘贴为代码格式,或者更好的是,请参阅this answer,了解如何包含一个好的 pandas 示例。 -
正如上面其他人提到的,它没有看到你定义了
df。此外,Python 中的布尔与运算是and。我认为&是按位与运算。