python,计算数据框中列表的唯一列表值

标签 python pandas list split count

我有一个数据框,其中包含两列用户反馈。

第一列来自调查的多项选择答案。该列的每一行都是他们选择的答案的列表。

下一列是年龄范围的类别。因此一行将包含用户颜色偏好和年龄范围的列表。

例如

what colours do you like?         age
['yellow','orange','green']       18-25
['yellow']                        18-25
['blue','green','red','orange']   26-30
['blue','red']                    26-30

我希望获得列表中每种颜色的单独计数,然后按年龄范围划分 期望的输出:

age    colour   count
18-25  yellow     2
18-25  orange     1
18-25  green      1
26-30  blue       2
26-30  green      1
26-30  red        2
26-30  orange     1

提前致谢!

最佳答案

将数据帧的索引设置为 age ,然后使用 Series.explode 在专栏 what colours do you like?'然后使用groupbylevel=0并使用 value_counts 聚合该系列:

df1 = (
    df.set_index('age')['what colours do you like?'].explode()
    .rename('color').groupby(level=0).value_counts().reset_index(name='count')
)

结果:

print(df1)
     age   color  count
0  18-25  yellow      2
1  18-25   green      1
2  18-25  orange      1
3  26-30    blue      2
4  26-30     red      2
5  26-30   green      1
6  26-30  orange      1

关于python,计算数据框中列表的唯一列表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63299860/

相关文章:

python - Django Rest Framework 自 ID 以来的分页

python - 在神经网络中实现稀疏连接(Theano)

python - 我应该如何记录 Python 方法参数,以便它们出现在智能感知和 Doxygen 中?

python - 将 Python Tornado 应用程序迁移到 Azure

c# - 从对象列表创建逗号分隔列表

Python的列表对象不允许索引值改变

python - 总结 Pandas 数据框中的部分列

python - 如何将分离的部分(来自 k-means 聚类)保存为不同的数据帧

python - 添加列参数时,Pandas 数据透视表按字母顺序(错误地)对分类数据进行排序

python - 如何从两个 "array.flatten()"-ed列表在python中创建字符串列表