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与权重合并?