我有一个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 dataframe和Extracting dataframes from a dictionary of dataframes的过程并不顺利。感谢您的关注!
答案 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)