熊猫.DataFrame.groupby.nunique() 不会删除 groupby 列.这是一个错误吗?



尽管我将参数as_index设置为True,熊猫。DataFrame.groupby.nunique(( 将我分组的列保留在结果中。

熊猫版本为:0.24.1

df = pd.DataFrame(
{'a': [1, 1, 2, 3, 2],
'b': [1, 2, 3, 4, 4]}
)
df.groupby('a', as_index=True).nunique()

输出为:

#    a  b
# a      
# 1  1  2
# 2  1  2
# 3  1  1

我期望:

#    b
# a   
# 1  2
# 2  2
# 3  1

作为按预期运行的反例:

df.groupby('a', as_index=True).max()

结果在:

#    b
# a   
# 1  2
# 2  4
# 3  4

如果你运行[print(df.to_string() + 'n') for i, df in df.groupby('a', as_index=True)],你会被打印出来:

a  b
0  1  1
1  1  2
a  b
2  2  3
4  2  4
a  b
3  3  4

a列未设置为每个数据框组的索引。它是 groupby 的输出,当as_index=True时将其索引设置为组索引(这也是默认值(,而不是数据框组本身。

最新更新