【发布时间】:2018-03-22 19:41:17
【问题描述】:
我是 pandas 的新手,关注了许多文档和线程,但没有找到解决方案。我必须合并三个不同的数据集。数据集有时间戳。我必须合并数据集,以便帧按时间顺序排列。请帮忙。
df1=
2017-09-28 19:00:48.035883 116.035883 2 5B7 Rx d 8 FA 02 C2 FF FC CF FF C2
2017-09-28 19:00:53.035358 121.035358 2 5B7 Rx d 8 F9 02 F2 02 FF FF FF F9
2017-09-28 19:00:53.035596 121.035596 2 5B7 Rx d 8 FA 02 C2 FF FC CF FF C2
2017-09-28 19:00:58.035314 126.035314 2 5B7 Rx d 8 F9 02 F2 02 FF FF FF F9
2017-09-28 19:00:58.035796 126.035796 2 5B7 Rx d 8 FA 02 C2 FF FC CF FF C2
2017-09-28 19:00:59.856818 127.856818 2 5B7 Rx d 8 F9 02 F2 02 FF FF FF F9
df2=
2017-09-28 19:00:55.168703 [ RESPONSE ] 37 f4 67 13 4e d6 02 b2 59 c2 e6 82
2017-09-28 19:00:55.182446 [ REQUEST ] f4 37 27 14 00 00 00 20 51 ef e2 0d f1
2017-09-28 19:00:55.213749 [ RESPONSE ] 37 f4 7f 27 78
2017-09-28 19:00:55.274877 [ RESPONSE ] 37 f4 67 14
2017-09-28 19:00:55.283833 [ REQUEST ] f4 37 31 01 0f 1f 04
df3=
2017-09-28 19:00:55.069731 145077 107.6890 231 NM_ReadySleepState
2017-09-28 19:00:55.069792 145078 107.6890 232 NM_ReadySleepState
2017-09-28 19:00:55.120177 145079 107.7420 233 SW2 heartbeat
2017-09-28 19:00:55.190568 145080 107.8080 234 SW1 heartbeat
merged=
2017-09-28 19:00:48.035883 116.035883 2 5B7 Rx d 8 FA 02 C2 FF FC CF FF C2
2017-09-28 19:00:53.035358 121.035358 2 5B7 Rx d 8 F9 02 F2 02 FF FF FF F9
2017-09-28 19:00:53.035596 121.035596 2 5B7 Rx d 8 FA 02 C2 FF FC CF FF C2
2017-09-28 19:00:55.069731 145077 107.6890 231 NM_ReadySleepState
2017-09-28 19:00:55.069792 145078 107.6890 232 NM_ReadySleepState
2017-09-28 19:00:55.120177 145079 107.7420 233 SW2 heartbeat
2017-09-28 19:00:55.168703 [ RESPONSE ] 37 f4 67 13 4e d6 02 b2 59 c2 e6 82
2017-09-28 19:00:55.182446 [ REQUEST ] f4 37 27 14 00 00 00 20 51 ef e2 0d f1
2017-09-28 19:00:55.190568 145080 107.8080 234 SW1 heartbeat
2017-09-28 19:00:55.213749 [ RESPONSE ] 37 f4 7f 27 78
2017-09-28 19:00:55.274877 [ RESPONSE ] 37 f4 67 14
2017-09-28 19:00:55.283833 [ REQUEST ] f4 37 31 01 0f 1f 04
2017-09-28 19:00:58.035314 126.035314 2 5B7 Rx d 8 F9 02 F2 02 FF FF FF F9
2017-09-28 19:00:58.035796 126.035796 2 5B7 Rx d 8 FA 02 C2 FF FC CF FF C2
2017-09-28 19:00:59.856818 127.856818 2 5B7 Rx d 8 F9 02 F2 02 FF FF FF F9
在 Jezrael 的建议下:
#set_index("DateTime") for all
mixDfs=[df1,df2,df3]
mix= pd.concat(mixDfs)
print list(mix)
print mix.head(10)
['Data', 'DateTime_string']
Data \
日期时间
2017-09-28 19:00:48.035883 116.035883 2 5B7 Rx d 8 FA 02...
2017-09-28 19:00:53.035358 121.035358 2 5B7 Rx d 8 F9 02...
2017-09-28 19:00:53.035596 121.035596 2 5B7 Rx d 8 FA 02...
2017-09-28 19:00:58.035314 126.035314 2 5B7 Rx d 8 F9 02...
2017-09-28 19:00:58.035796 126.035796 2 5B7 Rx d 8 FA 02...
2017-09-28 19:00:59.856818 127.856818 2 5B7 Rx d 8 F9 02...
2017-09-28 19:00:55.069731 145077 107.6890 231 NM_ReadySleepState
2017-09-28 19:00:55.069792 145078 107.6890 232 NM_ReadySleepState
2017-09-28 19:00:55.120177 145079 107.7420 233 SW2 heartbeat
2017-09-28 19:00:55.190568 145080 107.8080 234 SW1 heartbeat
DateTime_string
DateTime
2017-09-28 19:00:48.035883 2017-09-28 19:00:48.035883
2017-09-28 19:00:53.035358 2017-09-28 19:00:53.035358
2017-09-28 19:00:53.035596 2017-09-28 19:00:53.035596
2017-09-28 19:00:58.035314 2017-09-28 19:00:58.035314
2017-09-28 19:00:58.035796 2017-09-28 19:00:58.035796
2017-09-28 19:00:59.856818 2017-09-28 19:00:59.856818
2017-09-28 19:00:55.069731 2017-09-28 19:00:55.069731
2017-09-28 19:00:55.069792 2017-09-28 19:00:55.069792
2017-09-28 19:00:55.120177 2017-09-28 19:00:55.120177
2017-09-28 19:00:55.190568 2017-09-28 19:00:55.190568
【问题讨论】:
-
@ Julien : 除了 Jezrael 提出的 concate 之外,还有几种方法,包括 df1.merge(df2,on="DateTime").merge(df3,on="DateTime")
标签: python-2.7 pandas