将特殊时间字符串转换为日期时间格式

问题描述 投票:0回答:1

第一个数据帧可以使用 pandas 转换为日期时间格式。第二个数据帧丢失了输入时间字符串中的一些字段,将时间字符串转换为日期时间对象的正确方法是什么?

import pandas as pd

data = [
    '+2h03m46s456ms',
]
df = pd.DataFrame(data, columns=['ts'])
df['ts'] = pd.to_datetime(df['ts'], format="+%Hh%Mm%Ss%fms")
print(df)

data2 = [
    '0',
    '+456ms',
    '+46s456ms',
    '+3m46s456ms'
]
df2 = pd.DataFrame(data2, columns=['ts'])
#df2['ts'] = pd.to_datetime(df2['ts'], format="+%Hh%Mm%Ss%fms")
print(df2)

输出:

                       ts
0 1900-01-01 02:03:46.456
            ts
0            0
1       +456ms
2    +46s456ms
3  +3m46s456ms
pandas datetime
1个回答
0
投票

这些是时间增量,而不是日期时间。

df = pd.DataFrame(data, columns=['ts'])
df['ts'] = pd.to_timedelta(df['ts'])
print(df)

df2 = pd.DataFrame(data2, columns=['ts'])
df2['ts'] = pd.to_timedelta(df2['ts'])
print(df2)
                      ts
0 0 days 02:03:46.456000
                      ts
0        0 days 00:00:00
1 0 days 00:00:00.456000
2 0 days 00:00:46.456000
3 0 days 00:03:46.456000
© www.soinside.com 2019 - 2024. All rights reserved.