我的数据框中有两个功能,即会计年度(FY)和财务季度(FQ)的字符串:
FY FQ
2008 3
2009 4
2009 1
2010 2
我使用了以下内容:
index=pd.PeriodIndex(data.FY, data.fq, freq='Q')
data['index']=index
我的输出如下:
index
2008Q1
2009Q1
2009Q1
2010Q1
我期待这样的事情:
index
2008Q3
2009Q4
2009Q1
2010Q2
答案 0 :(得分:2)
它不起作用的原因是PeriodIndex期望作为描述所需索引的字符串列表。您可以提供包含列表理解的必要列表
创建数据:
data = { 'years': ['2008', '2009', '2010', '2011'], 'Q':['3', '4', '1', '2']}
df = pd.DataFrame(data)
Q years
0 3 2008
1 4 2009
2 1 2010
3 2 2011
使用列表推导创建索引并应用它:
index = pd.PeriodIndex([y+'Q'+q for y, q in zip(df.years, df.Q)], freq='Q')
df.index = index
Q years
2008Q3 3 2008
2009Q4 4 2009
2010Q1 1 2010
2011Q2 2 2011
注意:您应该查看period_range,它更易于使用。