gpt4 book ai didi

python - pandas 与索引中的重复值合并

转载 作者:太空宇宙 更新时间:2023-11-03 14:17:32 24 4
gpt4 key购买 nike

你好,

我有以下两个数据帧(df1,df2),如果我合并它们(内部连接),我会得到以下数据帧:

In [85]: df1 = pd.DataFrame({'value' : [10, 11, 14, 16]}, index=[1, 2, 3, 3]); df1                 
Out[85]:
value
1 10
2 11
3 14
3 16

In [86]: df2 = pd.DataFrame({'value' : [11, 15, 16]}, index=[1, 3, 3]); df2
Out[86]:
value
1 11
3 15
3 16

In [87]: pd.merge(df1, df2, how='inner', left_index=True, right_index=True)
Out[87]:
value_x value_y
1 10 11
3 14 15
3 14 16
3 16 15
3 16 16

我想要以下数据框,而不是这个

    value_x  value_y 
1 10 11
3 14 15
3 16 16

基本上,在出现重复行的情况下,不要按照当前发生的方式进行 m * n 合并。

最佳答案

我们需要一个新的参数 key ,通过使用 groupby + cumcount

pd.merge(df1.assign(key=df1.groupby(level=0).cumcount()).reset_index(),
df2.assign(key=df2.groupby(level=0).cumcount()).reset_index(),
how='inner',on=['index','key']).\
drop('key',1).set_index('index')
Out[25]:
value_x value_y
index
1 10 11
3 14 15
3 16 16

关于python - pandas 与索引中的重复值合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48154042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com