【问题标题】:How to merge two grouped-by Pandas Dataframes by a common column(ID) together?如何通过公共列(ID)将两个分组的 Pandas Dataframes 合并在一起?
【发布时间】:2016-03-18 13:03:17
【问题描述】:

我正在学习使用 pandas 进行数据分析。

我有两个按数据分组的数据框,如下所示。

df1:

        count1  count2  rate
id          
958     34  34  1.000000
2822    41  41  1.000000
5193    180 184 0.978261
5841    35  35  1.000000
5858    104 104 1.000000

df2:

    price
id  
958     170
2822    138
5193    160
5841    181
5858    250

我该怎么办pd.merge(df1, df2, how='inner', on=['id'])?目前,由于 'id' 是索引,我无法选择它。 有人可以帮忙吗?

【问题讨论】:

  • pd.merge(df1.reset_index(), df2.reset_index(), how='inner', on=['id']) ?

标签: python pandas merge group-by


【解决方案1】:

你可以使用join

In [226]: df1.join(df2)
Out[226]:
      count1  count2      rate  price
id
958       34      34  1.000000    170
2822      41      41  1.000000    138
5193     180     184  0.978261    160
5841      35      35  1.000000    181
5858     104     104  1.000000    250

merge 使用reset_index of df1, df2

In [227]: pd.merge(df1.reset_index(), df2.reset_index(), how='inner', on=['id'])
Out[227]:
     id  count1  count2      rate  price
0   958      34      34  1.000000    170
1  2822      41      41  1.000000    138
2  5193     180     184  0.978261    160
3  5841      35      35  1.000000    181
4  5858     104     104  1.000000    250

【讨论】:

  • 非常感谢,约翰。我花了几个小时搜索..你的答案很清楚:)真的很感激。
猜你喜欢
  • 1970-01-01
  • 2011-06-14
  • 2018-05-16
  • 2016-01-09
  • 1970-01-01
  • 2020-09-04
  • 2013-09-18
相关资源
最近更新 更多