从具有多个 csv 文件的数据框中绘制图形

山姆

我有 2 个 csv 文件

文件1.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

文件2.csv

,DATE,DAY,OPEN,2PM,CLOSE,STATUS
0,2021-05-18,Tuesday,538.8,530.45,530.8,1
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,2
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

文件3.csv

,DATE,DAY,OPEN,2PM,CLOSE,STATUS
0,2021-05-18,Tuesday,538.8,530.45,530.9,0
1,2021-05-19,Wednesday,530.65,532.6,536.85,1
2,2021-05-20,Thursday,536.95,537.05,536.35,0
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,0
6,2021-05-26,Wednesday,532.95,530.55,532.1,0
7,2021-05-27,Thursday,532.95,529.65,529.85,1

可以使用以下方法绘制 INDIVIDUAL csv 文件的图形

import pandas as pd
df = pd.read_csv("file1.csv")
df.groupby('DAY')['STATUS'].value_counts(normalize=True).unstack().plot.bar()

它显示情节为

在此处输入图片说明

该图为一个文件有 5 个 twinBARS(星期一、星期二、星期三等)。

但是,我想在一个图中从所有 3 个文件中绘制“星期一”的数据。谁能让我知道我们如何处理多个文件?

这意味着,情节将有 3 个双杠。每个双杠将代表每个文件中的星期一,例如

Monday from file1.csv
Monday from file2.csv
Monday from file3.csv

我想为所有 3 个文件绘制星期一的这个图。

tdy

在连接它们之前FILE为每个创建一df然后通过过滤器所需的天(Tuesday在此实例中)和组由两个DAYFILE

df1 = pd.read_csv('file1.csv').assign(FILE=1)
df2 = pd.read_csv('file2.csv').assign(FILE=2)
df3 = pd.read_csv('file3.csv').assign(FILE=3)
df = pd.concat([df1, df2, df3]).reset_index(drop=True)

# or concat via generator
# df = pd.concat(pd.read_csv(f'file{i}.csv').assign(FILE=i) for i in (1,2,3).reset_index(drop=True))

(df[df.DAY.eq('Tuesday')]
    .groupby(['DAY', 'FILE'])['STATUS']
    .value_counts(normalize=True)
    .unstack().plot.bar())
plt.xticks(rotation=0)

每个文件的星期二


要按给定的 过滤threshold,请将值计数保存到中间countsdf 并使用它来过滤:

day, threshold = 'Tuesday', 0.8
counts = df[df.DAY.eq(day)].groupby(['DAY', 'FILE'])['STATUS'].value_counts(normalize=True).unstack()
counts[counts > threshold].plot.bar()

每个文件的星期二高于阈值

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从具有条件的数据框中绘制图形?

列出所有“.csv”文件名,然后输入相应的代码来绘制图形

从 csv 文件绘制图形

从CSV绘制图形

有没有办法遍历熊猫数据框名称来绘制图形?

读取具有多个标题的CSV文件

在 BigQuery 中从具有多个表的数据生成 CSV 文件

如何从具有多个表的dataSet生成多个csv文件

Pandas - 具有多个 csv 索引的数据框

Django D3 从 mongodb 读取 csv 数据以绘制图形

使用CSV文件作为共现矩阵使用neworkx绘制图形

Python Matplotlib - 如何从具有 2 列的表中绘制图形

如何从具有数字结果的时间序列和具有颜色编码的治疗组的多个治疗组中绘制图形

如何合并具有不同标题的多个csv文件?

合并多个具有不同模式的csv文件

合并多个具有相似文件名的 CSV

循环遍历具有多个字段的 csv 文件

Python:具有多个标题的 CSV 文件 - 合并为一个数据框?

在python csv中删除具有多个特定值的行

从多个 csv 文件绘制网站中的数据

将具有多个数据节的csv文件读取到可寻址结构中

编写具有多个值的字典以将数据存储在CSV文件的列中

将多个csv文件串联到具有相同标头的单个csv中-Python

如何在现有的QGraphicsVIew中绘制图形?

使用“gridExtra”和多个方面并排绘制图形

使用CSV数据绘制图表的正确格式

如何在Python中编写具有多个键的字典,每个键具有多个值到csv?

使用Jupyter Notebook将具有多个图纸的Excel文件转换为多个csv文件

当不同的图形线具有相同的点时,绘制图形工具提示