在对数据框进行 groupby(...).size() 操作之后执行 reset_index(name='counts') 操作会发生什么?它会按照分组的方式创建一个包含“counts”列的数据框,其中包含每个组的大小。虽然我不明白为什么它有效,但它确实实现了我想要的结果。
如果我执行 groupby + size 操作:df.groupby(['letter', 'number']).size(),我将获得一个多级索引,其中包含一个“letter”级别和一个“number”级别。
如果我执行 groupby + size 操作:df.groupby(['letter', 'number']).size(),我将获得一个多级索引,其中包含一个“letter”级别和一个“number”级别。
df = df.groupby(['letter', 'number']).size()
print df.index
输出: MultiIndex(levels=[[u'A', u'B', u'C'], [0, 1, 2]],
labels=[[0, 1, 1, 2], [0, 1, 2, 0]],
names=[u'letter', u'number'])
我对添加.reset_index(...)
操作后会发生什么感到困惑:
df = df.groupby(['letter', 'number']).size().reset_index(name='counts')
,
这将产生索引为RangeIndex(start=0, stop=4, step=1)
的以下Dataframe:
letter number counts
0 A 0 2
1 B 1 1
2 B 2 1
3 C 0 1
我对以下三个问题特别困惑:
- reset_index的文档中没有名为"name"的关键字参数,但是我看到了一些帖子推荐使用它来创建一个命名的大小/总计列 [1, 2, 3] ,并且它似乎可以工作。有没有一些解释这个
name
关键字参数如何工作的文档? reset_index
之后的新数据框具有名为“counts”的列,但是reset_index
文档没有提到导致列被命名,那么这是怎么发生的?- 为什么整个多级索引会被重置,如果我们只指定了要删除的特定索引级别(“counts”)?