gpt4 book ai didi

python - 基于 pandas 中的列的分层条形图

转载 作者:行者123 更新时间:2023-11-30 22:20:49 25 4
gpt4 key购买 nike

我有一个 4 列 6 行的 pandas 数据框。例如:

        Healthy    state_A   state_B  state_C
0: Yes 0 1 1
1: No 0 1 0
2: Yes 0 0 1
3: Yes 0 0 1
4: No 0 0 0
5: No 0 0 1

现在我想绘制一个条形图。每个状态列的总和应为一根柱(即,state_A 的总和应对应于一根柱,state_B 的总和应对应于一根柱,state_C 的总和应对应于一根柱)。此外,我想按“健康”列对它们进行分组,即每个条形图都应该分层。例如,state_C 条的高度为 4(总和为 4),它应该由两种颜色组成(一种颜色的高度为 3,因为我们有 3 个 Healty==Yes,另一种颜色的高度为 1,因为我们有一个 Healty==否)。

如何做到这一点?

最佳答案

不确定我是否正确理解了您的意思,但我会尝试。

示例数据:

(列顺序并不重要)

   A  B  C Healthy
0 0 1 1 Yes
1 0 1 0 No
2 0 0 1 Yes
3 0 0 1 Yes
4 0 0 0 No
5 0 0 1 No

图表:

import pandas as pd


data = {'Healthy': {0: 'Yes', 1: 'No', 2: 'Yes', 3: 'Yes', 4: 'No', 5: 'No'},
'A': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0},
'B': {0: 1, 1: 1, 2: 0, 3: 0, 4: 0, 5: 0},
'C': {0: 1, 1: 0, 2: 1, 3: 1, 4: 0, 5: 1}}

# create data frame from sample data
df = pd.DataFrame(data)

# sum by state
df_sum = df.sum(numeric_only=True)

# sum group by state
df_gby = df.groupby(['Healthy']).sum(numeric_only=True)

# plot sum
df_sum.plot.bar()

# plot gby sum
df_gby.transpose().plot.bar(stacked=True)

聚合结果:

# df_sum
A 0
B 2
C 4

# df_gby
A B C
Healthy
No 0 1 1
Yes 0 1 3

图像/图表:

  1. Just a SUM
  2. SUM with GROUP BY

关于python - 基于 pandas 中的列的分层条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48768691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com