我正在尝试为老板自动计费。我必须为发票日期和客户选择最高数量,然后在单独的列中打印该数量,并为与该客户相关联的第二行打印0(或空白)。我正在尝试重新创建此示例:
我在使用Pandas时遇到了麻烦。我使用数据透视表获取每个客户端的最大数量,然后将该数据与原始数据合并以获得“最大”列。看起来像这样:
我的计划是使用索引本质上说“如果数量不等于最大,则将值更改为0”
这是我的代码,但出现错误“正在尝试从DataFrame的切片副本上设置一个值”:
ad2[ad2['Qty'] != ad2['max']]['Qtrly Billing Count']=0
有关如何解决此问题的任何建议?
更新:尝试关闭使我出现索引错误的设置,但我要更新的列未更改。救命!
答案 0 :(得分:0)
重新创建df:
ad2 = pd.DataFrame({'Qty':[33, 47],'max':[47,47], 'Qtrly':[47,47] })
Qtrly Qty max
0 47 33 47
1 47 47 47
使用位置:
ad2.loc[ad2['Qty'] != ad2['max'], 'Qtrly']=0
结果:
Qtrly Qty max
0 0 33 47
1 47 47 47