我正在寻找一种解决方案,将字典中的所有数据帧放入一个巨大的数据帧中。我对Python比较陌生,所以我无法理解如何迭代字典并将所有数据帧放入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 个数据帧中,然后对其进行操作。任何建议将不胜感激。
我已经尝试过了,
for df in dodf:
pd.concat(dodf.values(), ignore_index=True)
但它似乎不起作用。
最佳答案
我认为需要concat
具有字典理解:
dodf = {f: pd.read_excel(f, sheet_name=None) for f in files}
df = pd.concat([v for k,v in dodf.items()])
或者:
dodf = {f: pd.read_excel(f, sheet_name=None) for f in files}
df = pd.concat([pd.concat(v) for k,v in dodf.items()])
关于python - 将数据帧字典合并为 1 个数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60360670/