为每个excel文件创建方框和胡须图

2024-06-25 23:00:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python/pandas/matplotlib的世界非常陌生,但最近我一直在使用它来创建方框和胡须图。我很好奇如何使用一列特定的数据为每一张纸创建一个框和胡须图,即我有17张纸,我需要从每一张纸中得到一个名为HMB和DV的列。我想在一个盒子和触须上画17个数据集,然后在DV图上再画17个数据集。下面是我到目前为止的情况。你知道吗

我可以打开文件,把所有的工作表都放到列表中,但是我不知道从哪里开始。我本打算尝试手动切片每一个集合(正如我在这里寻求帮助之前在下面开始的那样),但是当我将来有更多的数据时,我不想手工操作。任何帮助都将不胜感激!你知道吗

import pandas as pd
import numpy as np
import xlrd
import matplotlib.pyplot as plt
%matplotlib inline
from pandas import ExcelWriter
from pandas import ExcelFile

excel_file =  'Comparison.xlsm'

list_dfs = []

xls = xlrd.open_workbook(excel_file,on_demand=True)
for sheet_name in xls.sheet_names():
    df = pd.read_excel(excel_file,sheet_name)
    list_dfs.append(df) 
#print(len(list_dfs))

a = list_dfs[0]
b = list_dfs[1]
c = list_dfs[2]
d = list_dfs[3]
e = list_dfs[4]
f = list_dfs[5]

data_a = a.loc[:,['DV','HMB']]
data_b = b.loc[:,['DV','HMB']]

我试着把每张纸都画成什么样子。它们都有相同的标题和布局,这很有帮助。你知道吗

编辑

所以我添加了下面建议的代码并删除了手动切片,现在我的所有数据都是字典格式的,但是我无法让pandas或matplotlib为我绘图。我不知道是否有一步我错过了。我在考虑为HMB和DV制作一本词典。我想有一个框和胡须图在同一个子地块上的每一个条目在名单上。你知道吗

d_dv = {}
d_hmb = {}
for i, sheet_name in enumerate(xls.sheet_names()):
    df = pd.read_excel(excel_file,sheet_name)
    d_dv["PSPPM" + str(i)] = df.loc[:,['DV']]
    d_hmb["HMB" + str(i)] = df.loc[:,['HMB']]

Example of each sheets format


Tags: 数据nameimportpandasdfmatplotlibasexcel
1条回答
网友
1楼 · 发布于 2024-06-25 23:00:28

可以从在同一循环中创建每个切片df开始。为此,可以定义字典并在每次迭代中添加新条目:

d = {}
for i, sheet_name in enumerate(xls.sheet_names()):
    df = pd.read_excel(excel_file,sheet_name)
    d["data" + str(i)] = df.loc[:,['DV','HMB']]

相关问题 更多 >