gpt4 book ai didi

python - 将 float64 列转换为日期时间 Pandas

转载 作者:太空宇宙 更新时间:2023-11-03 13:33:13 29 4
gpt4 key购买 nike

我有以下 pandas DataFramedfA['TradeDate']:

0     20100329.0
1 20100328.0
2 20100329.0
...

我希望将其转换为日期时间。

基于SO的另一种做法,我先将其转换为字符串,然后应用strptime函数。

dfA['TradeDate'] = datetime.datetime.strptime( dfA['TradeDate'].astype('int').to_string() ,'%Y%m%d')

然而,这会返回我的格式不正确的错误 (ValueError)。

我发现的一个问题是该列不适合字符串,而是适合对象。

当我尝试时:

dfA['TradeDate'] = datetime.datetime.strptime( dfA['TradeDate'].astype(int).astype(str),'%Y%m%d')

它返回:必须是 Str 而不是 Series。

最佳答案

您可以使用:

df['TradeDate'] = pd.to_datetime(df['TradeDate'], format='%Y%m%d.0')
print (df)
TradeDate
0 2010-03-29
1 2010-03-28
2 2010-03-29

但是如果一些错误的值,添加 errors='coerce' 将它们替换为 NaT

print (df)
TradeDate
0 20100329.0
1 20100328.0
2 20100329.0
3 20153030.0
4 yyy

df['TradeDate'] = pd.to_datetime(df['TradeDate'], format='%Y%m%d.0', errors='coerce')
print (df)
TradeDate
0 2010-03-29
1 2010-03-28
2 2010-03-29
3 NaT
4 NaT

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

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