【发布时间】:2021-09-03 03:43:02
【问题描述】:
我有 2 个数据框
df1
product_id value name
abc 10 a
def 20 b
ggg 10 c
df2
我使用df2.groupby(['prod_id'])['code'].count().reset_index()后得到的
prod_id code
abc 10
def 20
ggg 10
ooo 5
hhh 1
我想合并从df2 到df1 的值,左边是product_id,右边是prod_id。
获得:
product_id value name
abc 20 a
def 40 b
ggg 20 c
我试过了:
pd.merge(df1, df2.groupby(['prod_id'])['code'].count().reset_index(),
left_on='product_id', right_on='prod_id', how='left')
返回 df1 和 2 个附加列 prod_id 和 code,其中 code 列包含我想在 df1 中增加 value 的数量。现在我可以只添加这 2 列,但我想避免这种情况。
【问题讨论】:
-
“现在我可以只添加这 2 列,但我想避免这种情况。”:这似乎是最简单和最清晰(也可能是最快)的方式;目前还不清楚为什么你想避免这种情况。
-
我相信
pandas有一个程序,这将是此类任务的最佳实践,我认为我的不是。
标签: python pandas list numpy dictionary