从python字典中提取数据帧

时间:2019-03-21 18:47:37

标签: python pandas dataframe dictionary for-loop

我有一个python字典,其中包含3个数据帧,仅此而已。我需要通过数据框名称调用每个数据框,而无需使用d [''];例如,对于数据框loopdata1,我无需执行d ['loopdata1']就可以调用它。这是带有3个数据帧loopdata1,loopdata2和loopdata3的字典:

dict_items([('loopdata1',    index       id        name  age  sex  sterilized
0      0  A006100       Scamp  120    0           1
1      1  A047759        Oreo  120    0           1
2      2  A134067      Bandit  192    0           1
3      3  A141142      Bettie  180    1           1
4      4  A163459       Sasha  180    1           0
5      5  A165752         Pep  180    0           1
6      6  A178569        Boti  180    0           1
7      7  A189592     Ophelia  216    1           1
8      8  A191351     Bri-Bri  192    1           0
9      9  A197810  Sassafrass  168    1           1), 
('loopdata2',    index       id     name  age  sex  sterilized
0      0  A200922   Carlos  192    0           1
1      1  A208755  Kootrie  168    0           1
2      2  A210457    Caleb  204    0           1
3      3  A212672     Cujo  156    1           0
4      4  A214991   Prissy  228    1           1
5      5  A215368  Guiness  156    0           1
6      6  A218622   Oliver  180    0           1
7      7  A218624   Cookie  180    0           1
8      8  A221174    Lippy  216    1           1
9      9  A221327    Jamie  192    1           1), 
('loopdata3',    index       id    name  age  sex  sterilized
0      0  A249087  *Polly  180    1           1
1      1  A251095  Beauty  168    1           1
2      2  A251214     Rex  144    0           1
3      3  A251268   Sully  204    0           1
4      4  A251402     Amy  216    1           1
5      5  A253939   Dirty  144    1           1
6      6  A254503   Daisy  204    1           1
7      7  A256412    Beau  192    0           0
8      8  A258441  Spring  168    1           1
9      9  A260631   Popki  168    0           1)]) 

这是生成字典的代码-我正在导入与数据框名称相同的excel文件,并剥离'.xlsx':

import os
import glob
import pandas as pd
my_dir = '../test/'

os.chdir( my_dir )
filelist = []

for files in glob.glob( '*.xlsx' ) :
    filelist.append(files)

lst = [os.path.splitext(x)[0] for x in filelist]
lst

d = {}
for dfname in lst:
    d[dfname] = pd.read_excel(dfname + '.xlsx')

我尝试Convert a dictionary to a pandas dataframeExtracting dataframes from a dictionary of dataframes的过程并不顺利。感谢您的关注!

1 个答案:

答案 0 :(得分:0)

您可以将传入的数据帧附加在一起,而不是将它们添加到字典中。
    first = True for dfname in lst: if first = True: main_df = pd.read_excel(dfname + '.xlsx') first = False else: appending_df = pd.read_excel(dfname + '.xlsx') main.df = main_df.append(appending_df)