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
Merging two data frames based on the index column
提问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')

