0
respostas

Criar vários dataframes de uma lista de arquivos

Bom dia pessoal. Estou com uma lista de arquivos em .csv, cada arquivo apresenta uma lista de 100. Eu consegui fazer os cálculos para cada um dos arquivos como apresentarei a seguir:


arquivos = os.listdir('C:/Users/Mauricio Gabriel/Dados')
l_amostras = []
l_media = []
l_log = []
l_desvio = []
for i in range(len(arquivos)):
    dado = pd.read_csv(arquivos[i], sep = ",")
    media = dado["Length"].mean() #Média do diâmetro        
    dado["Logaritmo_b_2"] = -np.log2(dado["Length"]) #Criando coluna com logaritmo do diâmetro
    media_log = dado["Logaritmo_b_2"].mean() #Média Logaritmo    
    desvio_padrao = np.std(dado["Logaritmo_b_2"]) #Desvio padrão Numpy
    l_desvio.append(desvio_padrao)
    l_media.append(media)
    l_log.append(media_log)
    l_amostras.append(arquivos[i])
dado = pd.DataFrame(list(zip(l_amostras,l_media, l_log, l_desvio)),
                    columns = ["Amostra", "Média diâmetro", "Média Logaritmica do diâmetro", "Desvio padrão"])

Porém eu quero pegar cada arquivo inicial e criar um boxplot e ficar com esses dados em uma variável dentro do programa para poder analisá-lo. Tentei fazer da seguinte forma:

for i in range(len(arquivos)):
    dado = pd.read_csv(arquivos[i], sep = ",")
    ax = sns.boxplot(data=dado['Lenght'], orient='h', width=0.3)
    ax

Só que ele me retorna um erro:

if self.columns.nlevels > 1: 
    return self.getitemmultilevel(key) 
    indexer = self.columns.getloc(key)
if isinteger(indexer):
    indexer = [indexer]

Como eu poderia pegar cada uma dessas colunas do "dado["Lenght"] e fazer gráficos ou ficar com eles para poder usá-los sem precisar recorrer a ler arquivo por arquivo manualmente?