gpt4 book ai didi

Python - Pandas - 将 YYYYMM 转换为日期时间

转载 作者:太空狗 更新时间:2023-10-29 21:06:35 27 4
gpt4 key购买 nike

初学者 python(因此也是 pandas)用户。我正在尝试将一些数据导入 Pandas 数据框。其中一列是日期,但格式为“YYYYMM”。我已尝试执行大多数论坛回复所建议的操作:

df_cons['YYYYMM'] = pd.to_datetime(df_cons['YYYYMM'], format='%Y%m')

虽然这不起作用(ValueError:未转换的数据仍然存在:3)。该列实际上包括每年的附加值,MM=13。消息来源将此行用作过去一年的平均值。我猜 to_datetime 有问题。

谁能提供一个快速的解决方案,要么去掉所有年平均值(最后两位数为“13”的那些),要么让 to_datetime 忽略它们?

最佳答案

传递 errors='coerce' 然后 dropna NaT 行:

df_cons['YYYYMM'] = pd.to_datetime(df_cons['YYYYMM'], format='%Y%m', errors='coerce').dropna()

duff 月份值将转换为 NaT

In[36]:
pd.to_datetime('201613', format='%Y%m', errors='coerce')

Out[36]: NaT

或者,您可以在转换前过滤掉它们

df_cons['YYYYMM'] = pd.to_datetime(df_cons.loc[df_cons['YYYYMM'].str[-2:] != '13','YYYYMM'], format='%Y%m', errors='coerce')

虽然这可能会导致对齐问题,因为返回的 Series 需要具有相同的长度,所以只传递 errors='coerce' 是一个更简单的解决方案

关于Python - Pandas - 将 YYYYMM 转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45215525/

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