使用时pandas groupby 函数并在 groupby 之后操作输出,我注意到某些函数在作为索引返回的内容以及如何操作方面表现不同。
假设我们有一个包含以下信息的数据框:
Name Type ID
0 Book1 ebook 1
1 Book2 paper 2
2 Book3 paper 3
3 Book1 ebook 1
4 Book2 paper 2
if we do
df.groupby(["Name", "Type"]).sum()
我们得到一个DataFrame
:
ID
Name Type
Book1 ebook 2
Book2 paper 4
Book3 paper 3
其中包含一个 MultiIndex 以及 groupby 中使用的列:
MultiIndex([('Book1', 'ebook'),
('Book2', 'paper'),
('Book3', 'paper')],
names=['Name', 'Type'])
和一列称为ID
.
但如果我申请size()
函数,结果是Series
:
Name Type
Book1 ebook 2
Book2 paper 2
Book3 paper 1
dtype: int64
最后,如果我做一个pct_change()
,我们只得到结果 DataFrame 列:
ID
0 NaN
1 NaN
2 NaN
3 0.0
4 0.0
TL;博士。我想知道为什么有些函数返回一个Series
而其他一些人则DataFrame
因为这让我在处理同一数据帧中的不同操作时感到困惑。