索引错误:选择两行的最大值并将其记录在单独的列中

时间:2018-07-25 18:50:33

标签: pandas indexing

我正在尝试为老板自动计费。我必须为发票日期和客户选择最高数量,然后在单独的列中打印该数量,并为与该客户相关联的第二行打印0(或空白)。我正在尝试重新创建此示例:

Billing Snippet

我在使用Pandas时遇到了麻烦。我使用数据透视表获取每个客户端的最大数量,然后将该数据与原始数据合并以获得“最大”列。看起来像这样:

Dataframe snippet

我的计划是使用索引本质上说“如果数量不等于最大,则将值更改为0”

这是我的代码,但出现错误“正在尝试从DataFrame的切片副本上设置一个值”:

    ad2[ad2['Qty'] != ad2['max']]['Qtrly Billing Count']=0

有关如何解决此问题的任何建议?

更新:尝试关闭使我出现索引错误的设置,但我要更新的列未更改。救命!

1 个答案:

答案 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