gpt4 book ai didi

python - 设置 pd.to_datetime 的格式

转载 作者:行者123 更新时间:2023-12-01 09:25:31 27 4
gpt4 key购买 nike

您好,已经提到了 to this post但我无法解决我的问题。我的 CSV 中有一个字符串列,示例值如下(请注意,月份和年份的位置有时会颠倒)。我需要在 to_datetime 中设置什么格式?我尝试了以下所有方法

df = pd.read_csv("filename.csv") #Imagine there is a Month column

#[1] df["Month"] = pd.to_datetime(df["Month"])
#[2] df["Month"] = pd.to_datetime(df["Month"], format="%m/%d/%Y")

[Month]
Mar-97
Apr-97
May-97
Jun-97
Nov-00
Dec-00
1-Jan
1-Feb
1-Mar
1-Apr

我收到错误

ValueError: day is out of range for month

对于[1],我得到

ValueError: time data 'Mar-97' does not match format '%m/%d/%Y' (match)

对于[2]。我也尝试删除 %d 但没有成功。您能指出这里出了什么问题吗?

最佳答案

一种方法是将 try/ exceptpd.Series.apply 一起使用:

s = pd.Series(['Mar-97', 'May-97', 'Nov-00', '1-Jan', '1-Mar'])

def converter(x):
try:
return pd.datetime.strptime(x, '%b-%y')
except ValueError:
year, month = x.split('-') # split by delimiter
x = year.zfill(2) + '-' + month # %y requires 0-padding
return pd.datetime.strptime(x, '%y-%b')

res = s.apply(converter)

print(res)

0 1997-03-01
1 1997-05-01
2 2000-11-01
3 2001-01-01
4 2001-03-01
dtype: datetime64[ns]

由于我们已将 converter 定义为函数,因此我们可以直接将其与 pd.read_csv 一起使用:

df = pd.read_csv('file.csv', parse_dates=['dt_col_name'], date_parser=converter)

<强> Python's strftime directives 是构建datetime 格式字符串的有用引用。

关于python - 设置 pd.to_datetime 的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50437679/

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