gpt4 book ai didi

Python Pandas - df.loc - 添加附加条件不起作用

转载 作者:行者123 更新时间:2023-12-01 00:18:42 24 4
gpt4 key购买 nike

我有一个包含以下代码的脚本,它按预期工作

Table2 = df.loc[df.Date.between('2018-11-22','2018-11-30')].groupby(df['FPYear'])[['New Customer', 'Existing Customer', 'revenue']].sum()

但是,现在我尝试添加一个附加条件,以便过滤名为“region”的列,该列在数据集中具有值 Canada,但它似乎不起作用。

Table2 = df.loc[df.Date.between('2018-11-22','2018-11-30'), df['Region'] = 'Canada'].groupby(df['FPYear'])[['New Customer', 'Existing Customer', 'revenue']].sum()

附加过滤器似乎没有影响。任何人都可以帮忙。谢谢

最佳答案

正如@Alaxander 提到的

这是一个示例片段:

import pandas

df = pd.DataFrame({
"A": [1,2,3],
"B": [4,5,6],
"C": [1,1,1]
})

df.loc[((d["A"]==1) & (d["B"]==4)), ["A", "B"]]

此外,您可能想查看 df["Region"] = "Canada" 中使用的赋值运算符,它不应该是 == 吗用作过滤器?我也已将其添加到下面的代码中。

如果您想要特定字段,您的代码:

Table2 = df.loc[((df.Date.between('2018-11-22','2018-11-30')) & (df['Region'] == 'Canada')), ["Date", "Region"]].groupby(df['FPYear'])[['New Customer', 'Existing Customer', 'revenue']].sum()

如果您想要所有字段,您的代码:

Table2 = df.loc[((df.Date.between('2018-11-22','2018-11-30')) & (df['Region'] == 'Canada'))].groupby(df['FPYear'])[['New Customer', 'Existing Customer', 'revenue']].sum()

PS:感谢@Alexander 提到这个错误。

关于Python Pandas - df.loc - 添加附加条件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59113106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com