我需要合并多个数据框。这是数据帧的示例代码df1 = pd.DataFrame(np.array([ [0, 5, 9], [0.3434, 4, 61], [10.22, 24, 9]]), columns=['time', 'attr11', 'attr12'])df2 = pd.DataFrame(np.array([ [0, 5, 19], [0.3, 14, 16], [9.99, 4, 9]]), columns=['time', 'attr21', 'attr22'])df3 = pd.DataFrame(np.array([ [0, 15, 49], [6.66, 4, 36], [9.66, 14, 9]]), columns=['time', 'attr31', 'attr32'])现在,如果可以,请串联con = pd.concat([df1,df2,df3], ignore_index=True, sort=True)sorted_data = con.sort_values(by="time")我得到的(几乎)输出是我想要的,但是还有3行0。这是我得到的输出attr11 attr12 attr21 attr22 attr31 attr32 time0 5.0 9.0 NaN NaN NaN NaN 0.00003 NaN NaN 5.0 19.0 NaN NaN 0.00006 NaN NaN NaN NaN 15.0 49.0 0.00004 NaN NaN 14.0 16.0 NaN NaN 0.30001 4.0 61.0 NaN NaN NaN NaN 0.34347 NaN NaN NaN NaN 4.0 36.0 6.66008 NaN NaN NaN NaN 14.0 9.0 9.66005 NaN NaN 4.0 9.0 NaN NaN 9.99002 24.0 9.0 NaN NaN NaN NaN 10.2200零时间行应具有一行,而不是三行,因此NaN零时间行中将没有行。这应该第一行看起来像0 5.0 9.0 5.0 19.0 15.0 49我怎样才能做到这一点 ?
2 回答
三国纷争
TA贡献1804条经验 获得超7个赞
这应该工作。
aggregation_functions = {'attr11':'sum','attr12':'sum','attr21':'sum','attr22':'sum','attr31':'sum','attr32':'sum'}
con_new = con.groupby(con['time']).aggregate(aggregation_functions)
con_new
添加回答
举报
0/150
提交
取消