首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取Pandas中唯一列表的计数

获取Pandas中唯一列表的计数
EN

Stack Overflow用户
提问于 2021-01-13 13:03:37
回答 2查看 58关注 0票数 0

我有一个pandas Dataframe,其中一列充满了列表:

代码语言:javascript
复制
import pandas    
df = pandas.DataFrame([[1, [a, b, c]],
                       [2, [d, e, f]],
                       [3, [a, b, c]]])

我想做一个数据透视表,显示列表和出现次数的计数

代码语言:javascript
复制
List     Count
[a,b,c]  2
[d,e,f]  1

因为list是一个不可散列的类型,所以什么聚合函数可以做到这一点呢?

EN

回答 2

Stack Overflow用户

发布于 2021-01-13 13:38:55

您可以压缩行列表和计数列表,然后从zip对象创建一个dataframe:

代码语言:javascript
复制
import pandas
df = pandas.DataFrame([[1, ['a', 'b', 'c']],
                   [2, ['d', 'e', 'f']],
                   [3, ['a', 'b', 'c']]])
rows = []
counts = []
for index,row in df.iterrows():
    if row[1] not in rows:
        rows.append(row[1])
        counts.append(1)
    else:
        counts[rows.index(row[1])] += 1
df = pandas.DataFrame(zip(rows, counts))
print(df)

票数 0
EN

Stack Overflow用户

发布于 2021-01-14 10:13:17

我最终使用的解决方案是:

代码语言:javascript
复制
import pandas
df = pandas.DataFrame([[1, ['a', 'b', 'c']],
           [2, ['d','e', 'f']],
           [3, ['a', 'b', 'c']]])
print(df[1])
df[1] = df[1].map(tuple)
#Thanks Ch3steR
df2 = pandas.pivot_table(df,index=df[1], aggfunc='count')
print(df2)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65695935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档