Python Pandas 对多列进行值计数并根据结果生成图表

Posted

技术标签:

【中文标题】Python Pandas 对多列进行值计数并根据结果生成图表【英文标题】:Python Pandas value counts for multiple columns and generate graph from the result 【发布时间】:2018-02-26 01:05:46 【问题描述】:

我有一个 csv 可供读取,如下所示

A   B   C
Sam 123 PID-213
Sam 145 PID-432
Sam 123 PID-546
Dan 786 PID-321
Dan 897 PID-432

我想要一个如下的组:唯一 B 元素和 Pid 的计数。 (Bis 2 因为 123 重复了两次所以)

A   B   C
Sam 2   3   
Dan 2   2

从上面绘制一个如下图:以及来自 A 列和 B 列的饼图,并将其保存在 2 个不同页面的 pdf 中。

我如何做到这一点

【问题讨论】:

【参考方案1】:

IIUC:

In [18]: df.groupby('A')['B','C'].nunique().plot.bar(rot=0)
Out[18]: <matplotlib.axes._subplots.AxesSubplot at 0xb7d7a90>

【讨论】:

当我在 PyCharm 中尝试时,默认情况下所有颜色都相同。如何分配颜色? @vikasns,它在 Jupyter / ipython 中是否正常工作? 我没试过。但在 PyCharm 中它不起作用。能否请您告诉我如何使用 Pycharm? 没问题,谢谢!

以上是关于Python Pandas 对多列进行值计数并根据结果生成图表的主要内容,如果未能解决你的问题,请参考以下文章

在 pandas / python 中对条件值进行分组和计数

pandas df中多列的唯一记录计数

如何在 Pandas DataFrame 中一次获取多列的值计数?

如何访问python groupby对象值

Python pandas数据计数函数value_counts

如何在 Python 中按多列对 Pandas DataFrame 进行排序