Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Pandas进行插值并使用时间戳而不是datetime字符串存储时间序列数据?_Python_Pandas_Dataframe - Fatal编程技术网

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

Python 使用Pandas进行插值并使用时间戳而不是datetime字符串存储时间序列数据?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个包含从0开始的时间戳列的数据帧 第一行总是从时间=0开始,下面的行获取从该点开始的相对时间。例如,第二行在第一行之后0.25秒,显然它得到了时间戳0.25 我想使用timestamp列主要是为了能够进行重采样和插值。所以,据我所知,为了达到这个目的,它必须是一些与时间相关的数据类型(pd.Timestamp) 现在,我另外想要的是,能够在以后将数据帧保存为CSV文件。不幸的是,pd.Timestamp列存储为该格式的日期时间字符串 1970-01-01 00:00:00.00000000

我有一个包含从0开始的时间戳列的数据帧

第一行总是从时间=0开始,下面的行获取从该点开始的相对时间。例如,第二行在第一行之后0.25秒,显然它得到了时间戳0.25

我想使用timestamp列主要是为了能够进行重采样和插值。所以,据我所知,为了达到这个目的,它必须是一些与时间相关的数据类型(
pd.Timestamp

现在,我另外想要的是,能够在以后将数据帧保存为CSV文件。不幸的是,
pd.Timestamp
列存储为该格式的日期时间字符串

1970-01-01 00:00:00.000000000
但是,我希望将其保存为输入值:作为从0.0开始的浮点值

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

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


我怎样才能同时做到这些呢?

你的时代听起来更像是我的时代。您可以将它们初始化为0,将它们相加,然后用
pd.Timedelta.total_seconds()
将它们表示为浮点


你的时代听起来更像我。您可以将它们初始化为0,将它们相加,然后用
pd.Timedelta.total_seconds()
将它们表示为浮点


为什么不另存为pickle文件?另一种选择是制作一个函数来读取和写入文件,在写入时,将时间戳转换为浮点,在读取时将时间戳转换为浮点,因为我将其保存为另一个需要CSV(更准确地说是TSV)格式的程序。熊猫已经有了读/写CSV的功能。为什么不另存为pickle文件呢?另一种选择是制作一个函数来读取和写入文件,在写入时,将时间戳转换为浮点,在读取时将时间戳转换为浮点,因为我将其保存为另一个需要CSV(更准确地说是TSV)格式的程序。熊猫已经有了读/写CSV的功能。也许可以,是的,但我已经有了绝对浮动的邮票。我存储传入的第一个戳记,并从下面的戳记中减去它,以使第一个为0,下面为“从该点开始”。我随后将它们转换为pd.Timestamp,以便能够对数据帧进行重采样。可能可以,是的,但我已经将戳记作为绝对浮点。我存储传入的第一个戳记,并从下面的戳记中减去它,以使第一个为0,下面为“从该点开始”。我随后将它们转换为
pd.Timestamp
,以便能够对数据帧进行重采样。
import pandas as pd
t0 = pd.Timedelta(0)
t1 = t0 + pd.Timedelta('0.25s')

t1_as_float = t1.total_seconds()