我正在尝试合并多个数据帧,每帧都有数据,如
timestamp cap
0 1387118554000 3488670
1 1387243928000 1619159
2 1387336027000 2191987
3 1387435314000 4299421
4 1387539459000 9866232
每个值表示每日生成的数据,但是每个值都不是以完全相同的毫秒生成的,因此时间戳不会合并。我需要一种方法将时间戳转换为年,月和日组件。然后我将能够合并我的数据集(除非有另一种方法来解决这样的问题)。
答案 0 :(得分:1)
您可以尝试to_datetime
:
print pd.to_datetime(df['timestamp'], unit='ms')
0 2013-12-15 14:42:34
1 2013-12-17 01:32:08
2 2013-12-18 03:07:07
3 2013-12-19 06:41:54
4 2013-12-20 11:37:39
Name: timestamp, dtype: datetime64[ns]
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
print df
timestamp cap
0 2013-12-15 14:42:34 3488670
1 2013-12-17 01:32:08 1619159
2 2013-12-18 03:07:07 2191987
3 2013-12-19 06:41:54 4299421
4 2013-12-20 11:37:39 9866232
然后您可以使用dt.date
:
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms').dt.date
print df
timestamp cap
0 2013-12-15 3488670
1 2013-12-17 1619159
2 2013-12-18 2191987
3 2013-12-19 4299421
4 2013-12-20 9866232
df['timestamp1'] = pd.to_datetime(df['timestamp'], unit='ms').dt.strftime('%Y-%m-%d')
print df
Int64Index([0, 1, 2, 3, 4], dtype='int64')
timestamp cap timestamp1
0 1387118554000 3488670 2013-12-15
1 1387243928000 1619159 2013-12-17
2 1387336027000 2191987 2013-12-18
3 1387435314000 4299421 2013-12-19
4 1387539459000 9866232 2013-12-20