python - 无法绘制饼图的值计数

标签 python pandas dataframe pie-chart subplot

我编写了一个函数来绘制饼图中变量值的分布,如下所示。 Pie chart I need to get

def draw_piecharts(df, variables, n_rows, n_cols):
     df[variables].value_counts.plot(kind='pie', layout=(n_rows,n_cols), subplots=True)
     plt.show()
def main():
    util.draw_piecharts(df, [ 'TARGET', 'BanruptcyInd'], 1,2)
if __name__ == "__main__":
    main()

不幸的是,我的函数不计算,因为数据帧没有属性 value_counts(),而 value_counts 是我知道如何在饼图中绘制分布的唯一方法。 这是正在绘制的变量示例:

0     0
1     0
2     0
3     0
4     0
5     0
6     0
7     0
8     0
9     0
10    0
11    0
12    1
13    0
14    0
15    0
16    0
17    1
18    0
19    0
20    0
21    1
22    0
23    0
24    1
25    0
26    1
27    0
28    0
29    0
Name: TARGET, dtype: int64
0     0
1     0
2     0
3     0
4     0
5     0
6     0
7     0
8     0
9     0
10    0
11    0
12    0
13    0
14    0
15    0
16    0
17    0
18    0
19    0
20    0
21    0
22    0
23    0
24    0
25    0
26    0
27    0
28    0
29    0

最佳答案

虽然 value_counts 是一个 Series 方法,但可以使用 DataFrame.apply 轻松将其应用于 DataFrames 内的 Series。在你的情况下。例如,

df[variables].apply(pd.value_counts).plot(kind='pie', layout=(n_rows,n_cols), subplots=True)

(假设 pandas 已导入为 pd)。

一个完整的例子:

import pandas as pd
a = pd.DataFrame({'a': [1,0,0,0,1,1,0,0,1,0,1,1,1],'b': [1,0,0,0,1,1,0,0,1,0,0,0,0]})
a.apply(pd.value_counts).plot.pie(subplots=True)

关于python - 无法绘制饼图的值计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36963502/

相关文章:

python - 基于 Pandas 数据框中分组的总和?

Python - 两个(略有不同)JSON 数组比较

python - 在 any() 语句中迭代一个小列表是否更快?

python - 使用 Numpy 和 Pandas 优化 Python 代码

html - 在 ipython notebook 中操作 HTML() 模块字体大小

python - 我如何在不重复计算的情况下计算 python 中数据框的所有唯一值?

python - 如何确定 Python 中 utf-8 编码字符串的字节长度?

python - 在 Amazon Elasticsearch Service 上建立索引 - 批量插入

python - 如何在 Pandas 数据框中重新排序字符串并插入新字符串

python - 计算数据框中字符串的出现次数