【问题标题】:pandas.DataFrame.groupby.nunique() does not drop the groupby column/s. Is this a bug?pandas.DataFrame.groupby.nunique() 不会删除 groupby 列。这是一个错误吗?
【发布时间】:2019-12-26 16:24:27
【问题描述】:

虽然我将参数 as_index 设置为 True,但 pandas.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

【问题讨论】:

    标签: python pandas pandas-groupby


    【解决方案1】:

    如果你运行[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 列未设置为每个数据框组的索引。当as_index=True(这也是默认值)时,groupby 的 输出 将其索引设置为组索引,而不是数据框组本身。

    【讨论】:

      猜你喜欢
      • 2018-03-06
      • 2014-07-10
      • 2012-09-18
      • 2012-03-25
      • 2010-12-22
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多