我有一个脚本,其中包含以下符合预期目的的代码
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()
附加过滤器似乎没有影响。谁能帮忙。谢谢
答案 0 :(得分:2)
如@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:感谢@Alexandar提到了这个错误。
答案 1 :(得分:0)
我通过执行以下操作找出了
Text