为了账号安全,请及时绑定邮箱和手机立即绑定

串联多个数据框并在DataFrame中对行进行排序

串联多个数据框并在DataFrame中对行进行排序

不负相思意 2021-05-13 13:17:55
我需要合并多个数据框。这是数据帧的示例代码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


查看完整回答
反对 回复 2021-05-18
  • 2 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信