pandas 根据索引列合并两个数据框

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/31837621/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-13 23:44:29  来源:igfitidea点击:

Merging two data frames based on the index column

pythonpandas

提问by user1017373

I have two dataframes, I wanted to merge them into one single dataframe based on the matching row. My dataframe looks like this

我有两个数据帧,我想根据匹配的行将它们合并为一个数据帧。我的数据框看起来像这样

DF_1

DF_1

Set_1   Fax_1   Fax_2
Abc_1   45  76
Abc_2   46  77
Abc_3   47  78
Abc_4   48  79
Abc_5   49  80
Abc_6   50  81
Abc_7   51  82
Abc_8   52  83
Abc_9   53  84
Abc_10  54  85

df_2

df_2

Set_1   Fax_3   Fax_4
Abc_1   69  42
Abc_2   70  43
Abc_3   71  44
Abc_6   72  45
Abc_5   73  46
Abc_6   74  47
Abc_7   75  48
Abc_8   76  49
Abc_9   77  50
Abc_10  78  51
Abc_11  55  86
Abc_12  56  87
Abc_13  57  88
Abc_14  58  89
Abc_15  59  90
Abc_16  60  91

The second one is a bigger dataframe and what I need as in my output file, as,

第二个是一个更大的数据框,我在输出文件中需要什么,因为,

Set_1   Fax_1   Fax_2   Fax_3   Fax_4
Abc_1   45  76  69  42
Abc_2   46  77  70  43
Abc_3   47  78  71  44
Abc_4   48  79  72  45
Abc_5   49  80  73  46
Abc_6   50  81  74  47
Abc_7   51  82  75  48
Abc_8   52  83  76  49
Abc_9   53  84  77  50
Abc_10  54  85  78  51

This is what I tried with merge,

这就是我尝试合并的方法,

merged =df.merge(df_annon, on='Set_1')
merged.head()

But it is just giving me the header as output. Any help or guidance is much appreciated..!!

但它只是给我标题作为输出。非常感谢任何帮助或指导.. !!

回答by firelynx

I guess I wrote the answer in a comment already, but let me elaborate.

我想我已经在评论中写下了答案,但让我详细说明一下。

The pandas merge functiontakes keyword arguments: left_index=and right_index=. When set to True, the merge function will use the index/indicies of the dataframe(s) for merging.

大Pandas合并功能需要关键字参数:left_index=right_index=。当设置为 时True,合并函数将使用数据帧的索引/索引进行合并。

Like this:

像这样:

merged = pd.merge(left=df, left_index=True
                  right=df_annon, right_index=True,
                  how='inner')

回答by Tanmoy

Try this

尝试这个

merged = df.merge(df_annon, left_index=True, right_index=True, how='inner')