Python Dataframe 合并超过 1 个索引

Posted

技术标签:

【中文标题】Python Dataframe 合并超过 1 个索引【英文标题】:Python Dataframe merge with more than 1 index 【发布时间】:2016-08-23 17:26:37 【问题描述】:

我需要帮助按 2 个索引(id 或 desc 和年份)合并 2 个数据帧。我试过 result = pd.concat([df1, s1], axis=1, ignore_index=True) 但我无法让它工作。

df1:
       id   desc   year   value1
0       1   var1   2000       10
1       1   var1   2001       15
2       1   var1   2002      952
3       2   var2   2000       85
4       2   var2   2001       16
5       2   var2   2002       12
6       3   var3   2000      112
7       3   var3   2001       89

df2:
       id   desc   year   value2
0       1   var1   2000       44
1       1   var1   2001       33
2       1   var1   2002       22
3       2   var2   2000       11
...

To:
       id   desc   year   value1  value2
0       1   var1   2000       10      44
1       1   var1   2001       15      33
2       1   var1   2002      952      22
3       2   var2   2000       85      11

因此索引是 id 或 desc 和 year 以将新 value2 合并/附加到数据框。有什么想法吗?

【问题讨论】:

您可以使用df1.merge(df2, on=['id','desc','year']) 和可选的how='left'|'right'|'outer' 【参考方案1】:

尝试.merge(),使用on=['col1','col2','col3']

In [24]: df1.merge(df2, on=['id','desc','year'])
Out[24]:
   id  desc  year  value1  value2
0   1  var1  2000      10      44
1   1  var1  2001      15      33
2   1  var1  2002     952      22
3   2  var2  2000      85      11

【讨论】:

以上是关于Python Dataframe 合并超过 1 个索引的主要内容,如果未能解决你的问题,请参考以下文章

如何在Python Pandas中将MultiIndex Dataframes与权重合并?

DataFrame的级联与合并操作

Python-dataframe合并(merge函数)

[转载]合并 list 中的 dataframe

合并Dataframe(熊猫)中的所有列-python3 [重复]

Python Pandas Dataframe 合并并只选择几列