【问题标题】:Python Dataframe merge with more than 1 indexPython Dataframe 合并超过 1 个索引
【发布时间】: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'

标签: python pandas dataframe merge append


【解决方案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

【讨论】:

    猜你喜欢
    • 2013-09-08
    • 2022-11-10
    • 2017-11-27
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 2019-02-24
    相关资源
    最近更新 更多