我有一个名为“file.csv”的 csv 文件
,DATE,DAY,OPEN,2PM,CLOSE,STATUS
0,2021-05-18,Tuesday,538.8,530.45,530.8,0
1,2021-05-19,Wednesday,530.65,532.6,536.85,0
2,2021-05-20,Thursday,536.95,537.05,536.35,1
3,2021-05-21,Friday,538.0,538.2,537.55,1
4,2021-05-24,Monday,537.3,535.05,532.85,1
5,2021-05-25,Tuesday,535.9,531.35,529.65,1
6,2021-05-26,Wednesday,532.95,530.55,532.1,0
7,2021-05-27,Thursday,532.95,529.65,529.85,0
我正在使用 pandas 将其转换为 df。
import pandas as pd
df = pd.read_csv("file.csv")
df 输出可以看作
有一个“STATUS”列,其中包含 1 和 0 值。
我想用 STATUS 列的值(即 0 或 1)在图表上从 DAY 列绘制周一到周五的图。我想看看每天出现 0 或 1 的百分比有多少。
我不知道如何使用这两列来绘制这样的图表。
感谢任何帮助。
最佳答案
IIUC,你想要这样的东西吗:
df.groupby('DAY')['STATUS'].value_counts(normalize=True).unstack().plot.bar()
输出:
饼图:
df.groupby('DAY')['STATUS'].value_counts(normalize=True).unstack(0).plot.pie(subplots=True, figsize=(15,8))
输出:
关于python - 使用 pandas dataframe 绘制多列图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68264389/