gpt4 book ai didi

python - 将字符串转换为日期时间使所有值都变为 NaT 类型

转载 作者:行者123 更新时间:2023-11-30 22:09:30 24 4
gpt4 key购买 nike

我有一个 Pandas 数据框,其中包含最近两次特性购买的日期。我已经从另一个中减去一个,标记该列“销售日期差异”并保存到 csv 文件。现在,我试图将数据转换回日期时间,但有问题。

这是数据

Area                 Sale Date Diff
10 Downtown 16553 days 00:00:00.000000000
167 Downtown 67 days 00:00:00.000000000
555 Upper Sahali 2289 days 00:00:00.000000000
987 Brockluhurst 2912 days 00:00:00.000000000
1400 North Shore 4663 days 00:00:00.000000000

当我第一次从 csv 加载数据时,它的格式类型为“str”。该列有一些空值,因此我尝试了以下操作:

gdf['Sale Date Diff'] = pd.to_datetime(gdf['Sale Date Diff'], errors='coerce')

这将我的所有数据转换为 pandas.tslib.NaTType,现在看起来像这样:

0   NaT
1 NaT
2 NaT
3 NaT
4 NaT

有什么办法可以解决这个问题吗?我还想将列格式设置为只有天,这可能吗?

最佳答案

我并不完全相信您正确读取了 csv,看起来您正在将内容拆分为不应拆分的列。但是,您不想转换为 datetime,而是希望转换为 timedelta:

pd.to_timedelta(df['Sale Date Diff'])

10 16553 days
167 67 days
555 2289 days
987 2912 days
1400 4663 days
Name: Sale Date Diff, dtype: timedelta64[ns]

将来从代码中删除 errors='coerce' 行会很有帮助,这样您就可以更好地了解出了什么问题。进行此更改后,您会看到以下错误:

ValueError: ('Unknown string format:', '16553 days 00:00:00.000000000')

这是由于您尝试将表示 timedelta 对象的字符串转换为时间戳而引起的。

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

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