[英]Merging two dataframes with different lengths
How can I merge two pandas dataframes with different lengths like those: 如何合并两个不同长度的熊猫数据框,如下所示:
df1 = Index block_id Ut_rec_0
0 0 7
1 1 10
2 2 2
3 3 0
4 4 10
5 5 3
6 6 6
7 7 9
df2 = Index block_id Ut_rec_1
0 0 3
2 2 5
3 3 5
5 5 9
7 7 4
result = Index block_id Ut_rec_0 Ut_rec_1
0 0 7 3
1 1 10 NaN
2 2 2 5
3 3 0 5
4 4 10 NaN
5 5 3 9
6 6 6 NaN
7 7 9 4
I already tried something like, but it did not work: 我已经尝试过类似的方法,但是没有用:
df_result = pd.concat([df1, df2], join_axes=[df1['block_id']])
I already tried: df_result = pd.concat([df1,df2,axis = 1) But the result was: 我已经尝试过:df_result = pd.concat([df1,df2,axis = 1)但结果是:
Index block_id Ut_rec_0 Index block_id Ut_rec_1
0 0 7 0.0 0.0 3.0
1 1 10 1.0 2.0 5.0
2 2 2 2.0 3.0 5.0
3 3 0 3.0 5.0 9.0
4 4 10 4.0 7.0 4.0
5 5 3 NaN NaN NaN
6 6 6 NaN NaN NaN
7 7 9 NaN NaN NaN
正如@Wen所述最好将使用concat
与axis
为1
,如下面的代码:
pd.concat([df1, df2],axis=1)
pandas.DataFrame.join
can "join" dataframes based on overlap in column data (or index). pandas.DataFrame.join
可以基于列数据(或索引)的重叠来“ pandas.DataFrame.join
”数据帧。 Something like this will likely work for you: 这样的事情可能会为您工作:
df1.join(df2.set_index('block_id'), on='block_id')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.