在两个表之间迭代数据pandas

问题描述 投票:0回答:1

我正在尝试向我的客户表(表)添加一个新列。这个新列是产品 (SKU) 待处理订单的总和。挂单位于另一个表(tableOV)中。我设法做到了这一点,但计算需要很长时间。我想知道是否有更有效的方法。

桌子

[table]

桌子OV

[tableOV]

带有新的悬垂求和列的表格

[table with new pendent sum column]

我的代码

table = pd.DataFrame(productsCustomerCd)

tableOV['CC'] = tableOV['CC'].astype(str)
tableOV['SKU'] = tableOV['SKU'].astype(str)
table['cc'] = table['cc'].astype(str)

sumPendentList = []
for i in table.itertuples():
    sumPendent = tableOV.loc[(tableOV['CC']==i.cc)].loc[(tableOV['SKU']==i.sku), 'Pendent'].sum()
    sumPendentList.append(sumPendent)

    print(i.cc, i.sku, sumPendent)

table['Pendent'] = sumPendentList

print(table)

我正在尝试向我的客户表(表)添加一个新列。这个新列是产品 (SKU) 待处理订单的总和。挂单位于另一个表(tableOV)中。我设法做到了这一点,但计算需要很长时间。我想知道是否有更有效的方法。

python pandas dataframe
1个回答
0
投票

当然,最好对 tableOV 执行 group by CC,计算总和,然后与表数据帧合并。像这样的代码应该可以完成工作:

sumPendent = tableOV.groupby('CC')['Pendent'].sum().reset_index()
final_table = table.merge(sumPendent,left_on='cc',right_on='CC',how='left')
© www.soinside.com 2019 - 2024. All rights reserved.