gpt4 book ai didi

python - TypeError : Passing PeriodDtype data is invalid. 改为使用 `data.to_timestamp()`

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:32 24 4
gpt4 key购买 nike

如何将格式为 2014-09date 列转换为格式为 2014-09-01 00:00:00.000 ?之前的格式由df['date'] = pd.to_datetime(df['date']).dt.to_period('M')转换而来。

我使用 df['date'] = pd.to_datetime(df['date']).dt.strftime('%Y-%m-%d %H:%M:%S.000 '),但它会生成错误:TypeError:传递 PeriodDtype 数据无效。请改用 data.to_timestamp()。我也尝试使用 pd.to_datetime(df['date']).dt.strftime('%Y-%m'),它会产生同样的错误。

最佳答案

第一个想法是通过 Series.to_timestamp 将句点转换为时间戳然后使用 Series.dt.strftime :

print (df)
date
0 2014-09

print (df.dtypes)
date period[M]
dtype: object

df['date'] = df['date'].dt.to_timestamp('s').dt.strftime('%Y-%m-%d %H:%M:%S.000')
print (df)
date
0 2014-09-01 00:00:00.000

或者简单地为每个值添加相同的最后一个值:

df['date'] = df['date'].dt.to_timestamp('s').dt.strftime('%Y-%m-%d %H:%M:%S').add('.000')
print (df)
date
0 2014-09-01 00:00:00.000

或者:

df['date'] = df['date'].dt.strftime('%Y-%m').add('-01 00:00:00.000')
print (df)
date
0 2014-09-01 00:00:00.000

关于python - TypeError : Passing PeriodDtype data is invalid. 改为使用 `data.to_timestamp()`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59316865/

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