使用 MultiIndex 在轴上进行基本索引

伊万·谢洛尼克

这是我从 groupby 获得的 multiIndex 数据框,其中我有 2 个索引 ['YearMonth', 'product_id'] 和列名 ['count'] 我已经尝试过文档和其他 stackoverflow 建议中的示例,但仍然无法索引product_id == 6818 for每个 YearMonth 索引列。

df = df.groupby(['YearMonth','product_id'])[['count']].sum()
df.head(5)
Out[54]:

                      count
YearMonth   product_id  
2017-05-01  6818    3
7394    1   7394    1
8369    1   8369    1
8504    1   8504    1
8666    1   8666    1



In [55]:
df.columns
Out[55]:
Index(['count'], dtype='object')
In [56]:
df.index.names
Out[56]:
FrozenList(['YearMonth', 'product_id'])
In [59]:
df.loc[('2017-05-01',0),'count']

我试过:简单的索引,df['YearMonth']但它只适用于列而不是索引

df.loc\ix\iloc在这个stackoverflow question中给出

df.loc[('2017-05-01',0)]

我总是得到 KeyError,例如KeyError: ('2017-05-01', 0)KeyError: 'YearMonth'

以及我尝试unstack方法df.unstack(level=0)并进行了与上述相同的操作

有人可以解释我错过了什么吗?提前致谢

最大U

您的示例 DF 看起来不“健康” - 我已经修复了它,现在看起来如下所示:

In [121]: df
Out[121]:
                       count
YearMonth  product_id
2017-05-01 6818            3
           7394            1
           8369            1
           8504            1
           8666            1

选项1:

In [122]: df.loc[pd.IndexSlice[:, 6818], :]
Out[122]:
                       count
YearMonth  product_id
2017-05-01 6818            3

选项 2:适用于命名索引

In [145]: df.query("product_id in [6818]")
Out[145]:
                       count
YearMonth  product_id
2017-05-01 6818            3

选项 3:

In [146]: df.loc[(slice(None), 6818), :]
Out[146]:
                       count
YearMonth  product_id
2017-05-01 6818            3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用MultiIndex与时间进行子集

使用基于索引的条件对MultiIndex DataFrame进行切片

使用分层索引(MultiIndex)进行快速选择和分配

Python“ for”问题-只能使用MultiIndex进行元组索引

使用MultiIndex时按年份在熊猫中进行索引/选择

使用MultiIndex在DataFrame上建立索引

如何使用MultiIndex的相关级别对MultiIndex DataFrame进行切片

使用 pd.MultiIndex.from_product 删除用于索引的列

在级别中使用唯一值重新索引MultiIndex

如何使用 Multiindex 将索引重置为整数值?

使用MultiIndex索引到Pandas DataFrame时保持顺序吗?

Pandas - 使用 MultiIndex DataFrame 的索引切入 DataFrame

在 MultiIndex pandas 数据帧上使用多维索引?

使用索引值列表对Pandas MultiIndex DataFrame进行切片

如何使用日期索引和多层列(MultiIndex)进行切片

使用Pandas MultiIndex对matplotlib条形图中的标签进行分组

使用Pandas MultiIndex数据进行多文件CSV写入

熊猫:使用带有MultiIndex的.loc进行条件选择

如何使用Pandas MultiIndex DataFrame中的先前值进行计算?

使用熊猫GroupBy进行汇总时设置MultiIndex

如何使用 MultiIndex 列对 Pandas DataFrame 进行分组?

在熊猫中使用Multiindex进行类似数组的操作?

使用 MultiIndex 旋转 DataFrame

重索引MultiIndex

使用numpy在多个轴上进行布尔蒙版

使用MultiIndex值的熊猫分组

Pandas:如何使用 f 作为 dict 在列轴(Multiindex)上 agg(f)

熊猫Multiindex重新索引级别

如何使用get_loc在MultiIndex中查找多个列的索引