猿问

使用 Pandas 将多个语句链接在一起时遇到问题

我正在尝试从 Excel 电子表格中过滤出多列以简化我工作中的一些任务。这是我认为最好的解决方案,无需多次编写和重写文件。我很确定它与 bigsplit 变量之前的变量有关。我也尝试过在 bigsplit 变量周围和内部使用或不使用括号。


这是我的代码片段:


file = "07-14-2020.xlsx"

df=pd.read_excel(file)

    disco2=df[df["Discontinued"] == 'N']

    close2=df[df["Store Closeout"] == 'N']

    oi2=df[df["Order Indicator+"] != 'S']

    dropship2=df[df["Primary Vendor"] == 'VENDOR']

    

    bigsplit = (df[(disco2) & (close2) & (oi2) & (dropship2)]) <--Error here

使用 (&) 运算符和 (and) 运算符会出现以下错误。


使用 AND 时的错误:


ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

使用 & 时的错误:


TypeError: unsupported operand type(s) for &: 'float' and 'float'


PIPIONE
浏览 89回答 1
1回答

慕姐4208626

好像你想要disco2 = df["Discontinued"] == 'N'close2 = df["Store Closeout"] == 'N'oi2 = df["Order Indicator+"] != 'S'dropship2 = df["Primary Vendor"] == 'VENDOR'&nbsp; &nbsp;&nbsp;bigsplit = df[disco2 & close2 & oi2 & dropship2]在这里我们得到可以与组合的布尔&系列。在您的原始代码中,您制作df切片。错误表示不清楚如何从数据框中获取布尔值。
随时随地看视频慕课网APP

相关分类

Python
我要回答