Извличане на кадри с данни от речника на Python

Имам речник на 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')

Опитах Преобразуване на речник в рамка за данни на pandas и Извличане на кадри с данни от речник на кадри с данни без успех. Благодаря, че разгледахте!


person shotty    schedule 21.03.2019    source източник
comment
Това звучи като XY проблем.   -  person Scott Boston    schedule 21.03.2019
comment
Можете директно да получите достъп до списък със стойности на dict с list(dict.values()) и да го индексирате   -  person G. Anderson    schedule 21.03.2019
comment
Как мога да изясня Скот?   -  person shotty    schedule 21.03.2019
comment
Благодаря, Андерсън, това е полезно, но се опитвам да извикам цялата рамка с данни, както в newdf = loopdata1, вместо да правя newdf = d['loopdata1'].   -  person shotty    schedule 21.03.2019


Отговори (1)


можете да добавите входящи кадри с данни заедно, вместо да ги добавите към dict.
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)

person Zack Oconnor    schedule 21.03.2019
comment
Благодаря, Зак, мога да работя с това! Единственото нещо е, че последният ред трябва да бъде: main_df = main_df.append(appending_df) - person shotty; 21.03.2019
comment
добър улов, направих промяната, за да отразя - person Zack Oconnor; 23.03.2019