【问题标题】:Get a frequency table for a column of lists获取一列列表的频率表
【发布时间】:2020-04-24 14:41:53
【问题描述】:

假设我有 DataFrame,其中有一列列表。

df = pd.DataFrame({'A': [['a', 'b', 'c'], ['b'], ['c'], ['a', 'b']]})

输出

Index  A
0      ['a', 'b', 'c']
1      ['b']
2      ['c']
3      ['a', 'b']

我如何获取一个列表在列中出现频率的频率表?

理想的输出应该是这样的

A               Count
['a', 'b', 'c'] 1
['b']           1
['c']           1
['a', 'b']      1

正在尝试这样的事情......

df.A.value_counts()

导致错误

TypeError: unhashable type: 'list'

【问题讨论】:

    标签: python pandas python-2.7 dataframe


    【解决方案1】:

    map 到元组,列表不可散列,如错误所示:

    df.A.map(tuple).value_counts().rename_axis('A').reset_index(name='Count')
    
               A  Count
    0  (a, b, c)      1
    1     (a, b)      1
    2       (b,)      1
    3       (c,)      1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-18
      • 2021-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多