Python的新手,并加快了熊猫的速度(0.16.2)。我有一个df(从Quandl返回)与行中的观察结果。我想转置数据帧,然后设置一个2列多索引:
>df
Period Value
2013Q2 10000
2014Q2 15000
2015Q2 12500
>df.T
Period 2013Q2 2014Q2 2015Q2
Value 10000 15000 12500
Desired dataframe after reindex (2-column multi-index):
Period 2013Q2 2014Q2 2015Q2
ID Measure 10000 15000 12500
但是,df.columns是我转置后的periodindex对象。我无法添加我想用来设置多索引的两个新列:
df['ID'] = 'XYZ'
df['Measure'] = 'EBIT'
DateParseError: unknown string format
对我来说,我无法在periodindex对象中添加非日期列标签。如果我尝试按位置添加列,它可以工作,但后来我在其他列中丢失了日期格式:
>df.insert(loc=5, column='ID', value='XYZ, allow_duplicates=False)
>df
Period 173 177 181 ID
Value 10000 15000 12500 XYZ
期间索引对我的原始列表有很大的帮助 - 我能够按季度分组,然后过滤掉我不想要的季度。我可以将它发送到dict,然后用标签替换时间戳,但是还有一种更好的方法,我还没有在文档中找到。
有没有办法可以创建两个新列,为现有观察值分配值,然后在不丢失列标题的情况下创建多索引?谢谢!
答案 0 :(得分:0)
您可以直接建立MultiIndex
,如下所示:
In [27]: mi = pd.MultiIndex.from_tuples([('XYZ', 'EDBIT')],
names=['ID', 'Measure'])
In [28]: df.index = mi
In [29]: df
Out[29]:
Period 2013Q2 2014Q2 2015Q2
ID Measure
XYZ EDBIT 10000 15000 12500