如何将包含年和季度的 str 格式的列转换为 '1947q1' 到同时考虑年和季度的日期格式列?

How do you convert a column containing year & quarter in a str format as '1947q1' to date format column where both year and quarter are considered?

  **Year_qtr GDP    ADJ_GDP**

2   1947q1  243.1   1934.5
3   1947q2  246.3   1932.3
4   1948q3  250.1   1930.3
5   1949q4  260.3   1960.7

尝试了 dateutil 包中的 parse() 但没有成功。 结果数据框应该有 'Year_qtr' 列作为日期值而不是对象。

您不能将季度存储在日期时间对象中。您可以单独使用它们:

# Split year and quarter information
year, quarter = map(int, year_column.split('q'))

pandas 已经可以开箱即用!您可以立即转换为日期时间:

import pandas as pd

df = pd.DataFrame({'Year_qtr': ['1947q1', '1947q2', '1948q3', '1949q4']})

df['datetime'] = pd.to_datetime(df['Year_qtr'])

# df
#   Year_qtr   datetime
# 0   1947q1 1947-01-01
# 1   1947q2 1947-04-01
# 2   1948q3 1948-07-01
# 3   1949q4 1949-10-01

# vice versa you can do
df['datetime'].dt.to_period("Q")
# 0    1947Q1
# 1    1947Q2
# 2    1948Q3
# 3    1949Q4
# Name: datetime, dtype: period[Q-DEC]