编辑:
如果你正在查看这个问题,你的字符串看起来像是1996-Q1
,那么只需使用pd.to_datetime(df['Quarter'])
将其转换为正确的pandas时间格式。这个问题是关于解决所有不符合此标准格式的季度日期。
原始问题:
我正在寻找一种好的、可读性强且易于理解的方式(可以记住下次使用),将Q3 1996
转换为pandas datetime,例如在这种情况下是1996-07-01
。
到目前为止,我找到了以下方法,但它非常丑陋:
df = pd.DataFrame({'Quarter':['Q3 1996', 'Q4 1996', 'Q1 1997']})
df['date'] = (
pd.to_datetime(
df['Quarter'].str.split(' ').apply(lambda x: ''.join(x[::-1]))
))
print(df)
Quarter date
0 Q3 1996 1996-07-01
1 Q4 1996 1996-10-01
2 Q1 1997 1997-01-01
我希望以下内容能够奏效, 因为它易于理解, 但不幸的是它无法实现:
df['date'] = pd.to_datetime(df['Quarter'], format='%q %Y')
问题还在于季度和年份的顺序显然是错误的,pandas无法进行简单的处理。
有人能帮我找到一种更清晰的方法将Q3 1996
转换为pandas日期时间吗?
pytz
)。但我不确定。我不知道有没有办法指定PeriodIndex的格式,但如果可以的话,那就太好了。 - cs95to_timestamp(how='end')
即可。 - User2321