合并具有偏移量的数据帧行(在同一天生成但具有不同的时间戳)

时间:2016-02-05 16:03:19

标签: python pandas merge

我正在尝试合并多个数据帧,每帧都有数据,如

timestamp   cap
0   1387118554000   3488670
1   1387243928000   1619159
2   1387336027000   2191987
3   1387435314000   4299421
4   1387539459000   9866232

每个值表示每日生成的数据,但是每个值都不是以完全相同的毫秒生成的,因此时间戳不会合并。我需要一种方法将时间戳转换为年,月和日组件。然后我将能够合并我的数据集(除非有另一种方法来解决这样的问题)。

1 个答案:

答案 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

dt.strftime

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