“如何在Python中计算连续时间值的差异”

2024-09-28 22:04:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图计算字符串时间值之间的差异,但我无法读取微秒格式。为什么我会犯这种错误?我怎样才能修改我的代码呢?你知道吗

我已经试过了”日期时间.strtime方法将字符串转换为时间格式,然后使用数据帧差异方法来计算列表中每个项之间的差异,并在excel中为其创建列。你知道吗

```
from datetime import datetime
import pandas as pd 

for itemz in time_list:
    df = pd.DataFrame(datetime.strptime(itemz, '%H %M %S %f'))
    ls_cnv.append(df.diff())

df = pd.DataFrame(time_list)
ls_cnv = [df.diff()]

print (ls_cnv)

```

我希望输出是

ls_cnv = [NaN, 00:00:00, 00:00:00] 
time_list = ['10:54:05.912783', '10:54:05.912783', '10:54:05.912783']

但我有(时间数据'10:54:05.906224'与格式'%H%M%S%f'不匹配)


Tags: 数据方法字符串importdfdatetimetime格式
2条回答

您得到的错误是因为您使用了错误的strptime。你知道吗

df = pd.DataFrame(datetime.strptime(itemz, '%H:%M:%S.%f'))

以上是正确的形式,即从time_list传递的形式,但事实并非如此。您也以错误的方式创建了DataFrameDataFrame是一个表,如果您需要数据的话。下面的行将在每个循环中为每个itemz创建并替换一个新的DataFrame,它是您列表中的一个元素。因此它将创建一个DataFrame,在第一个循环中有一个元素,它将'10:54:05.912783',它将diff(),在没有其他值的情况下使用它自己。你知道吗

for itemz in time_list:
    df = pd.DataFrame(datetime.strptime(itemz, '%H %M %S %f'))
    ls_cnv.append(df.diff())

也许你想做的是:

from datetime import datetime
import pandas as pd

ls_cnv = []
time_list = ['10:54:03.912743', '10:54:05.912783', '10:44:05.912783']

df = pd.to_datetime(time_list)
data = pd.DataFrame({'index': range(len(time_list))}, index=df)
a = pd.Series(data.index).diff()
ls_cnv.append(a)
print (ls_cnv)

只是因为你的时间格式必须包括冒号和这样的点

"%H:%M:%S.%f"

相关问题 更多 >