2017-09-18 16 views
0

辞書にあるすべてのデータフレームを単一の巨大なデータフレームに入れるソリューションを探しています。データフレームの辞書を1つの単一データフレームに結合

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 

さて、私がする必要がある:私は辞書を反復処理し、1に、私がこれまでに実施しているコードをすべてのデータフレームを配置する方法を理解することができませんので、以下の通りであるPythonのに比較的新しいですすべての異なるデータフレームを1つのデータフレームに入れて、その上で操作を行います。どんなアドバイスもありがとうございます。

私は

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

、これを試してみましたが、しかし、正しく動作していないようです。

答えて

1

私はdictの理解とconcatが必要だと思う:

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

すでに試しましたが、「NDFrame以外のオブジェクトを連結できません」 –

+0

編集した回答を確認してください。 – jezrael

+1

これは美しく動作します。どうもありがとうございます! –

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

は、この動作しますか? また、連結が列単位であるのか、行単位であるのかによって異なります。

関連する問題