2017-09-18 3 views
0

Ich bin auf der Suche nach einer Lösung, um alle meine Daten, die in einem Wörterbuch sind in einen einzigen riesigen Datenrahmen zu setzen. Ich bin relativ neu in Python so dass ich nicht in der Lage bin zu verstehen, wie ein Wörterbuch iterieren und setzen alle Datenrahmen in 1. Der Code, den ich bisher umgesetzt haben, ist wie folgt:Kombinieren Wörterbuch von Datenrahmen in 1 einzigen Datenrahmen

import sys 
from ftplib import FTP 
import os 
import socket 
import time 
import pandas as pd 
import numpy as np 
from glob import glob 

path = 'path_to_file' 

files = glob(path + '/*Mail*.xlsx') 

print files 

get_df = lambda f: pd.read_excel(f, sheetname=None) 

dodf = {f: get_df(f) for f in files} ### dictionary of dataframes 

Nun, ich muss setze alle verschiedenen Datenrahmen in einen Datenrahmen und mache dann meine Operationen darauf. Jede Beratung wäre willkommen.

ich dies versucht haben,

for df in dodf: 
pd.concat(dodf.values(), ignore_index=True) 

Aber es scheint nicht richtig zu arbeiten.

Antwort

1

Ich denke, brauchen concat mit dict Verständnis:

dodf = {f: pd.read_excel(f, sheetname=None) for f in files} 
df = pd.concat([pd.concat(v) for k,v in dodf.items()]) 
+0

Versucht, dass es bereits, aber es gibt immer einen Fehler: "kann nicht ein NDFrame-Objekt verketten" –

+0

Bitte überprüfen Sie die bearbeitete Antwort. – jezrael

+1

Das funktioniert wunderbar. Ich danke dir sehr! –

0
df_list = [ v for k,v in dodf.items()] 
df = pd.concat(df_list ,axis=1) 

funktionierts? Es hängt auch davon ab, ob die Concat durch Spalten oder Zeilen ist ...

Verwandte Themen