我有两个数据框:
我想将这两个数据框与名称 data_inputs 合并在一起。这个新的数据框应该是(4760,3)。到目前为止我有这个代码:
data_inputs = pd.concat([pre_data_inputs, Diff_Course_PreCourse], axis=1)
但 data_inputs 的大小现在是(4950,3)。 我不知道是什么问题。如果有人能帮助我,我将不胜感激。感谢。
答案 0 :(得分:0)
如果您的索引在两种情况下都匹配,那么您可以使用:
pre_data_inputs.merge(Diff_Course_PreCourse, left_index=True, right_index=True)
否则您可能希望在两个数据帧上reset_index()
。
答案 1 :(得分:0)
正如@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