繁体   English   中英

如何将两个数据帧合并在一起?

[英]How to merge two data frames together?

我有两个数据框:

  1. Pre_data_inputs的大小为(4760,2)
  2. 用的(4760,1)的大小Diff_course_Precourse。

我想将这两个数据框与名称data_inputs合并在一起。 此新数据帧应为(4760,3)。 到目前为止,我有以下代码:

data_inputs = pd.concat([pre_data_inputs, Diff_Course_PreCourse], axis=1)

但是data_inputs的大小现在是(4950,3)。 我不知道是什么问题。 如果有人可以帮助我,我将不胜感激。 谢谢。

好吧,如果您的索引在两种情况下都匹配,则可以使用:

pre_data_inputs.merge(Diff_Course_PreCourse, left_index=True, right_index=True)

否则,您可能想在两个数据帧上都使用reset_index()

正如@Parfait所评论的那样,数据帧的索引必须匹配才能使concat像您描述的那样起作用。

例如:

d1 = pd.DataFrame(np.zeros(shape = (3,1)))
     0
0  0.0
1  0.0
2  0.0

d2 = pd.DataFrame(np.ones(shape = (3,2)), index = range(2,5))
     0    1
2  1.0  1.0
3  1.0  1.0
4  1.0  1.0

由于索引不匹配,结果数据帧将具有等于唯一索引集(0,1,2,3,4)的行数

pd.concat([d1, d2], axis = 1)
     0    0    1
0  0.0  NaN  NaN
1  0.0  NaN  NaN
2  0.0  1.0  1.0
3  NaN  1.0  1.0
4  NaN  1.0  1.0

您可以在concat之前使用reset_index或强制其中一个数据帧使用另一个数据帧的索引

pd.concat([d1, d2.set_index(d1.index)], axis = 1)
     0    0    1
0  0.0  1.0  1.0
1  0.0  1.0  1.0
2  0.0  1.0  1.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM