使用季度编号将datetime列转换为YYYYQx

时间:2018-03-19 12:12:40

标签: python pandas datetime

有没有一种简单的方法可以将python中的datetime列转换为YYYYQx格式,例如2018Q12018Q2等?

我已尝试过这一行,但没有返回任何内容

zip([list(DF_A['period'].dt.year), ['Q']*length_of_DF, list(DF_A['period'].dt.quarter)])

2 个答案:

答案 0 :(得分:4)

您可以按to_period将日期时间转换为季度时段,并使用strftime将自定义字符串转换为季度时间段:

d = ['2015-01-01','2016-05-01','2015-07-01','2015-10-01','2015-04-01']
df = pd.DataFrame({ 'Date': pd.to_datetime(d)})
print (df)
        Date
0 2015-01-01
1 2016-05-01
2 2015-07-01
3 2015-10-01
4 2015-04-01

print (df['Date'].dt.to_period('Q'))
0   2015Q1
1   2016Q2
2   2015Q3
3   2015Q4
4   2015Q2
Name: Date, dtype: object

print (df['Date'].dt.to_period('Q').dt.strftime('%Yq%q'))
0    2015q1
1    2016q2
2    2015q3
3    2015q4
4    2015q2
Name: Date, dtype: object

答案 1 :(得分:3)

这是一种方式。

df = pd.DataFrame({'A': ['2017-01-01', '2017-04-01', '2017-12-01']})

df['A'] = pd.to_datetime(df['A'])
df['B'] = df['A'].dt.year.astype(str) + 'Q' + df['A'].dt.quarter.astype(str)

结果:

           A       B
0 2017-01-01  2017Q1
1 2017-04-01  2017Q2
2 2017-12-01  2017Q4