【问题标题】:What is the difference between DataFrame.groupby(column).apply(len) and DataFrame[column].value_counts()?DataFrame.groupby(column).apply(len) 和 DataFrame[column].value_counts() 有什么区别?
【发布时间】:2019-12-27 17:55:24
【问题描述】:

以下 python 代码给了我一个 AssertionError:

p = DataFrame.groupby(column).apply(len).sort_values(ascending=False)
q = DataFrame[column].value_counts()
pd.testing.assert_series_equal(p, q)

我认为这些函数做同样的事情,事实上,在查看前几行时,结果系列是相似的,但根据断言错误,它们只有 59% 相似。

【问题讨论】:

    标签: python pandas group-by series


    【解决方案1】:

    两者几乎相似,只需要相同的索引名称和相同的系列名称 - 全部设置为默认None

    DataFrame = pd.DataFrame({'a': [1,5,4,2,1,2,1,2,1,4,2,3,2,1]})
    column = 'a'
    p = DataFrame.groupby(column).apply(len).sort_values(ascending=False)
    q = DataFrame[column].value_counts()
    
    print (p.name)
    None
    print (q.name)
    a
    
    print (p.index.name)
    a
    print (q.index.name)
    None
    
    pd.testing.assert_series_equal(p.rename_axis(None), q.rename(None))
    

    【讨论】:

      猜你喜欢
      • 2020-05-26
      • 1970-01-01
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      • 2021-09-02
      • 2022-11-15
      • 1970-01-01
      • 2011-03-20
      相关资源
      最近更新 更多