我有一个mulitindexed数据框,我希望看到som值:
import pandas as pd
import itertools
a = pd.period_range('2013Q1','2013Q4', freq='Q')
i = (1111, 2222, 3333)
idx = pd.MultiIndex.from_tuples(list(itertools.product(a, i)),
names=('Periode', 'CVR'))
df = pd.DataFrame(index=idx,
columns=('OMS', 'OMK','RES','DRIFT_IND','OEVRIG_IND','FIN_IND','VARE_UD','LOEN_UD','FIN_UD'))
使用它来访问值有效:
df.loc[('2013Q1',1111),'OMS']
然而这失败了:
df.loc[('2013Q1',1111),'OMS']=1
带有以下错误:
ValueError: can only call with other PeriodIndex-ed objects
有谁知道问题是什么?
答案 0 :(得分:2)
如果您明确使用Period
对象而不是字符串,这适用于访问和分配:
In [9]: df.loc[(pd.Period('2013Q1'),1111),'OMS']
Out[9]: nan
In [10]: df.loc[(pd.Period('2013Q1'),1111),'OMS'] = 1
In [11]: df.loc[(pd.Period('2013Q1'),1111),'OMS']
Out[11]: 1