Diagrama de caja agrupados en Seaborn

votos
0

con la ayuda de algunas personas maravillosas por aquí, yo era capaz de generar mis primeros diagramas de caja en Seaborn. Tengo 2 parcelas Seaborn separadas que muestran dos comparaciones a partir de una hoja de Excel. Lo que quiero hacer ahora está presente tanto en las comparaciones de datos (lo que se muestra en las columnas 2 a continuación) en la misma parcela, creando esencialmente un diagrama de caja agrupados. Traté de convertir los datos en tramas de datos, concat, y fundirlo, pero no tuvo éxito. Soy bastante nuevo en Python, así que me preguntaba si todo me podría ayudar. A continuación se muestra lo que tengo para el código.

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


excel_file =  'Project File Merger.xlsm'

list_dfs = []

xls = xlrd.open_workbook(excel_file,on_demand=True)

sheet_names = xls.sheet_names()

d_data = {}
for i, sheet_name in enumerate(xls.sheet_names()):
    df = pd.read_excel(excel_file,sheet_name)
    d_data[sheet_names[i]] = df.loc[:,['HMB','PSPPM']]


keys = list(d_data.keys())
values_list1 = list(d_data.values())

print(keys[0])
print(values_list1[0])

que devuelve

Check1.xlsm
                             HMB                                  PSPPM
0                            0.141005                             0.429498
1                            0.141005                             0.429498
2                            0.066071                             0.706797
3                                 NaN                             0.080378
4                            0.045815                             0.004076
5                                 NaN                             0.630156
6                                 NaN                             0.723957
7                                 NaN                             0.712118
8                            0.391531                             0.791329
9                            0.036823                             0.506834
10                           0.391531                             0.791329

Ahora bien, esto es donde estoy atascado. Tengo un values_list que tiene 17 elementos (uno para cada hoja en el archivo de Excel). Me gustaría que los datos de cada hoja a ser agrupados juntos. Creo que podría estar corriendo en un problema porque hay 2 columnas en cada elemento de la lista? ¡Cualquier sugerencia sera apreciada!

Publicado el 27/11/2018 a las 16:55
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

No estoy del todo seguro de entender su problema totalmente, en particular en relación con los diagramas de caja. Pero, por lo que yo entiendo, usted tiene un diccionario con el nombre de sus hojas de cálculo como las claves, y una trama de datos como el valor. Y desea combinar todos estos trama de datos en una sola, por lo que puede representar todos los valores juntos?

Si eso es correcto, entonces un simple pd.concatpuede aceptar un diccionario y generar una nueva trama de datos con las teclas como índices. A continuación, puede utilizar reset_index()para aplanar la trama de datos:

new_df = pd.concat(d_data).reset_index()

Después de eso, no sé cómo desea llamar su diagrama de caja, pero se puede, por ejemplo, dibujar los valores de uno de su columna en cada una de las hojas:

sns.boxplot(x='level_0', y='HMB', data=new_df)
Respondida el 29/11/2018 a las 11:26
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more