Python 将每个工作表读入新的数据框
我在Excel文件中有50多个工作表。 我的主要目标是将不同的列导入不同的数据帧。 我可以导入文件并读取工作表的所有名称Python 将每个工作表读入新的数据框,python,python-3.x,excel,pandas,Python,Python 3.x,Excel,Pandas,我在Excel文件中有50多个工作表。 我的主要目标是将不同的列导入不同的数据帧。 我可以导入文件并读取工作表的所有名称 import pandas as pd df = pd.read_excel('Fileoffiles.xls') df.sheet_names # will give me names of all my sheets 其思想是将图纸读入df1、df2….、df50 我不希望它出现在数据帧字典中,只希望出现在单个数据帧中。您可以尝试使用“eval”将第I个工作表分配给第I
import pandas as pd
df = pd.read_excel('Fileoffiles.xls')
df.sheet_names # will give me names of all my sheets
其思想是将图纸读入df1、df2….、df50
我不希望它出现在数据帧字典中,只希望出现在单个数据帧中。您可以尝试使用“eval”将第I个工作表分配给第I个数据帧。代码类似于:
xls = pd.ExcelFile('Fileoffiles.xls')
for i in range(len(xls.sheet_names)):
eval('df' + str(i) '= pd.read_excel("Fileoffiles.xls", sheetname="' + xls.sheet_names[i] +'")')
正如Mayank所提到的,如果您希望命名每个数据帧,那么数据帧字典可能最有效
将熊猫作为pd导入
xl=pd.ExcelFile('Book1.xlsx')
sheets=xl.sheet\u名称
dfs={}
df_名称=范围(长度(张))
df_名称=['df'+str(i)表示df_名称中的i]
对于图纸,zip中的名称(图纸,df_名称):
dfs[name]=xl.parse(表)
dfs
结果为:
{'df0': col_1 col_2 col_3 col_4 col_5
0 12 18 24 30 36
1 23 24 25 26 27
2 34 30 26 22 18
3 45 36 27 18 9
4 56 42 28 14 0
5 67 48 29 10 -9
6 78 54 30 6 -18
7 89 60 31 2 -27
8 100 66 32 -2 -36
9 111 72 33 -6 -45
10 122 78 34 -10 -54
11 133 84 35 -14 -63
12 144 90 36 -18 -72
13 155 96 37 -22 -81
14 166 102 38 -26 -90
15 177 108 39 -30 -99
16 188 114 40 -34 -108
17 199 120 41 -38 -117,
'df1': col_1 col_2 col_3 col_4 col_5
0 1.000000 15.000000 29.0 43.000000 57.000000
1 5.000000 20.000000 35.0 50.000000 65.000000
2 19.000000 27.000000 35.0 43.000000 51.000000
3 26.333333 32.666667 39.0 45.333333 51.666667
4 35.333333 38.666667 42.0 45.333333 48.666667
5 44.333333 44.666667 45.0 45.333333 45.666667
6 53.333333 50.666667 48.0 45.333333 42.666667
7 62.333333 56.666667 51.0 45.333333 39.666667
8 71.333333 62.666667 54.0 45.333333 36.666667
9 80.333333 68.666667 57.0 45.333333 33.666667
10 89.333333 74.666667 60.0 45.333333 30.666667
11 98.333333 80.666667 63.0 45.333333 27.666667
12 107.333333 86.666667 66.0 45.333333 24.666667
13 116.333333 92.666667 69.0 45.333333 21.666667
14 125.333333 98.666667 72.0 45.333333 18.666667
15 134.333333 104.666667 75.0 45.333333 15.666667
16 143.333333 110.666667 78.0 45.333333 12.666667
17 152.333333 116.666667 81.0 45.333333 9.666667
18 161.333333 122.666667 84.0 45.333333 6.666667}
数据帧列表不那么复杂
dfs=[]
对于图纸中的图纸:
dfs.append(xl.parse(sheet))
另一个很好的例子是,受访者如此直截了当地告诉询问者,他们询问程序解决问题的能力是错误的,而不是在可能的情况下简单地回答,或者干脆不回答,因为你已经告诉OP他不想要他特别要求的东西 OP表示: 我不希望它出现在数据帧字典中,只希望出现在单个数据帧中
您可以将所有df存储在dict或列表中,然后访问它。有50个独立变量有什么意义?有很多答案可以帮助你建立这个链接:这不是答案