python - 使用 pandas dataframe 绘制多列图表

标签 python python-3.x pandas matplotlib

我有一个名为“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 输出可以看作

enter image description here

有一个“STATUS”列,其中包含 1 和 0 值。

我想用 STATUS 列的值(即 0 或 1)在图表上从 DAY 列绘制周一到周五的图。我想看看每天出现 0 或 1 的百分比有多少。

我不知道如何使用这两列来绘制这样的图表。

感谢任何帮助。

最佳答案

IIUC,你想要这样的东西吗:

df.groupby('DAY')['STATUS'].value_counts(normalize=True).unstack().plot.bar()

输出:

enter image description here

饼图:

df.groupby('DAY')['STATUS'].value_counts(normalize=True).unstack(0).plot.pie(subplots=True, figsize=(15,8))

输出:

enter image description here

关于python - 使用 pandas dataframe 绘制多列图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68264389/

相关文章:

python - 正常和拉普拉斯的 KL 散度未在 TensorFlow Probability 和 PyTorch 中实现

python - 如何使用python opencv和anaconda为两张图片创建一个新的交错图像

python - PyDictionary 单词 "has no Synonyms in the API"

python - 登录 csv 文件的正确方法是什么?

python - Pandas 子串

python - Caffe,如何从预训练网络进行预测

python - 在 Python 中,为什么计数器会出现 'undefined local variable' 错误,列表却不会?

python - Python 中的可变迭代器?

python - 匹配两个二维数组的行并使用 numpy 获取行索引映射

python - Pandas : Replace string column values