如何将包含年和季度的 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]
**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]