在熊猫DatetimeIndex

时间:2018-11-13 14:55:09

标签: python pandas datetime

我从gps单元获得了数据,该数据的测量频率为10 Hz,但是由于某种原因,供应商提供了高达分钟精度的时间戳。因此,我最终要进行多次重复。

是否有一种简单的方法来重新创建丢失的秒和毫秒,并假设时间戳顺序正确且时间从s = 0和ms = 0开始?

测试用例:

import pandas as pd

id_like = pd.date_range(start = '12:01:05', end = '12:04:05', freq='100ms')
ive_got = id_like.floor('1Min')

1 个答案:

答案 0 :(得分:0)

IIUC,您可以使用pd.date_range重新定义数据框索引:

np.random.seed(0)
id_like = pd.date_range(start = '12:01:05', end = '12:04:05', freq='100ms')
ive_got = id_like.floor('1Min')
df = pd.DataFrame(np.random.random(1801), index=ive_got)

输入数据帧打印(df.head(10)):

                            0
2018-11-13 12:01:00  0.548814
2018-11-13 12:01:00  0.715189
2018-11-13 12:01:00  0.602763
2018-11-13 12:01:00  0.544883
2018-11-13 12:01:00  0.423655
2018-11-13 12:01:00  0.645894
2018-11-13 12:01:00  0.437587
2018-11-13 12:01:00  0.891773
2018-11-13 12:01:00  0.963663
2018-11-13 12:01:00  0.383442

使用pd.date_range以以下频率重新定义您的索引:

df.index = pd.date_range(df.index.min(), df.index.max(), freq='100ms')

输出打印(df.head(10)):

                                0
2018-11-13 12:01:00.000  0.548814
2018-11-13 12:01:00.100  0.715189
2018-11-13 12:01:00.200  0.602763
2018-11-13 12:01:00.300  0.544883
2018-11-13 12:01:00.400  0.423655
2018-11-13 12:01:00.500  0.645894
2018-11-13 12:01:00.600  0.437587
2018-11-13 12:01:00.700  0.891773
2018-11-13 12:01:00.800  0.963663
2018-11-13 12:01:00.900  0.383442