gpt4 book ai didi

python - 将字符串值转换为日期时间

转载 作者:太空宇宙 更新时间:2023-11-03 15:40:28 24 4
gpt4 key购买 nike

我目前有一个数据框,其中有一列包含日期时间值作为对象数据类型。

    col1    col2            col3
0 A 10 2016-06-05 11:00:00
0 B 11 2016-06-04 00:00:00
0 C 12 2016-06-02 05:00:00
0 D 13 2016-06-03 02:00:00

我想做的是将 col3 转换为日期时间值,这样它就会给我:

 Year-Month-Day-Hour

对于稍后的一些日期时间特征工程。当我尝试时:

df['col3'] = pd.to_datetime(df['col3'])

我收到这个错误:

OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 3008-07-25 00:00:00

有什么想法吗?

谢谢

最佳答案

您可以使用参数 errors='coerce' 将超出限制的值转换为 NaT:

print (df)
col1 col2 col3
0 A 10 2016-06-05 11:00:00
0 B 11 2016-06-04 00:00:00
0 C 12 2016-06-02 05:00:00
0 D 13 3008-07-25 00:00:00

df['col3'] = pd.to_datetime(df['col3'], errors='coerce')
print (df)
col1 col2 col3
0 A 10 2016-06-05 11:00:00
0 B 11 2016-06-04 00:00:00
0 C 12 2016-06-02 05:00:00
0 D 13 NaT

Timestamp limitation :

In [68]: pd.Timestamp.min
Out[68]: Timestamp('1677-09-21 00:12:43.145225')

In [69]: pd.Timestamp.max
Out[69]: Timestamp('2262-04-11 23:47:16.854775807')

也可以创建 Periods ,但从字符串来看并不容易:

def conv(x):
return pd.Period(year = int(x[:4]),
month = int(x[5:7]),
day = int(x[8:10]),
hour = int(x[11:13]), freq='H')

df['col3'] = df['col3'].apply(conv)

print (df)
col1 col2 col3
0 A 10 2016-06-05 11:00
0 B 11 2016-06-04 00:00
0 C 12 2016-06-02 05:00
0 D 13 3008-07-25 00:00

关于python - 将字符串值转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52717117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com