在pandas mulitindex中设置值失败

2024-04-29 09:14:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个多索引的数据帧,我希望在其中使用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'))

使用此选项可以访问值:

^{pr2}$

但是这失败了:

df.loc[('2013Q1',1111),'OMS']=1

出现以下错误:

 ValueError: can only call with other PeriodIndex-ed objects

有人知道问题是什么吗?在


Tags: 数据importpandasdfasrangeperiodoms
1条回答
网友
1楼 · 发布于 2024-04-29 09:14:35

如果您明确使用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

但我为此提出了一个问题:https://github.com/pydata/pandas/issues/9892

相关问题 更多 >