我有一个数据框(data2),由许多不同制造商的销售订单组成,其中有一列名为“num units salled_x”
如果制造商名称存在于名为Dataman的列表中:
我想通过获取每个特定制造商的数据框中名为“EQTUnit”的列的总和来更新每行中“num units Saled_x”的值。如果特定制造商的所有行都具有相同的“num units Sald_x”字段,则可以,因为这是每个制造商的“EQTUnit”之和
我认为这听起来很简单,但似乎无法解决这个问题。这就是我到目前为止所做的:
for index,row in data2.iterrows():
for x in dataman:
if data2.loc[index, 'EQTMan'] in dataman:
data2.loc[index, 'num units sold_x'] = data2[data2['EQTMan'] == x].EQTUnit.sum()
以下是一些示例数据:
UCCStatus UCCDate EQTMan EQTUnit
0 SALE 5/20/2019 SPARTAN 1
1 SALE 5/28/2019 SPARTAN 2
2 SALE 5/29/2019 SPARTAN 1
3 SALE 5/25/2019 SPARTAN 1
4 TERMINATI 7/16/2019 JOHNSON 11
5 SALE 8/8/2019 SPARTAN 1
6 TERMINATI 9/17/2019 SPARTAN 1
7 SALE 8/16/2019 TITAN 2
8 SALE 8/5/2019 TITAN 2
9 SALE 8/5/2019 TITAN 2
基本上,我需要经常更新'num units salled_x'字段,方法是获取每个唯一制造商的'EQTUnit'之和
预期产出:
UCCStatus UCCDate EQTMan EQTUnit num units sold_x
0 SALE 5/20/2019 SPARTAN 1 7
1 SALE 5/28/2019 SPARTAN 2 7
2 SALE 5/29/2019 SPARTAN 1 7
3 SALE 5/25/2019 SPARTAN 1 7
4 TERMINATI 7/16/2019 JOHNSON 11 11
5 SALE 8/8/2019 SPARTAN 1 7
6 TERMINATI 9/17/2019 SPARTAN 1 7
7 SALE 8/16/2019 TITAN 2
8 SALE 8/5/2019 TITAN 2
9 SALE 8/5/2019 TITAN 2
使用
.loc
对dataman
列表使用.isin()
筛选行,查看它们是否在数据帧中然后对过滤后的数据集使用
.groupby
和transform
输入:
代码:
输出:
相关问题 更多 >
编程相关推荐