使用Pandas进行插值,并使用时间戳而不是datetime字符串存储时间序列数据?

时间:2019-03-11 17:03:35

标签: python pandas dataframe

我有一个Pandas数据框,其中包含一个从0开始的时间戳列。

第一行始终从时间= 0开始,随后的行从该点开始获取相对时间。因此,例如第二行比第一行晚0.25秒,显然它的时间戳为0.25。

我想主要使用timestamp列来进行重新采样和内插。因此,据我所知,为此目的,它必须是与时间相关的dtype(在我的情况下为pd.Timestamp)。

现在,我还希望能够在以后将数据框另存为CSV文件。不幸的是,pd.Timestamp列存储为

格式的日期时间字符串。
1970-01-01 00:00:00.000000000

但是我想保存它,就像它进来一样:作为从0.0开始的浮点值。

我正在考虑将时间戳记作为两个独立的列存储在数据帧中,一列为pd.Timestamp格式,另一列的原始值与float相同。

此外,帧中浮动的数据值以%7.3f格式存储。但是,时间戳的浮点值应该更精确,而不是%.6f或什至更多的十进制数字。因此,除上述所有内容外,我还需要为单列使用不同的浮点格式。

我如何一起做所有这些事情?

1 个答案:

答案 0 :(得分:2)

您的时间对我来说更像Timedeltas。您可以将它们初始化为0,将它们加在一起,然后用pd.Timedelta.total_seconds()表示为浮点数。

import pandas as pd
t0 = pd.Timedelta(0)
t1 = t0 + pd.Timedelta('0.25s')

t1_as_float = t1.total_seconds()