2017-04-12 53 views
2

是否有可能使用pandas從紙張excel文件中讀取多個表? 是這樣的:從ROW0 讀表1直到從102行row100 讀取表2直到row202 ...pandas read_excel在同一張紙上的多個表

+1

爲什麼不讀這一切,然後分開, python中不同的DataFrame? – splinter

+0

我不知道我該怎麼做到這一點。 – bsd

+0

@bsd,你知道預先的總行數嗎? – MaxU

回答

5

假設我們有以下的Excel文件:

enter image description here

解決方案:我們解析第一片(索引:0

xl = pd.ExcelFile(fn) 
nrows = xl.book.sheet_by_index(0).nrows 

df1 = xl.parse(0, skip_footer = nrows-(10+1)).dropna(axis=1, how='all') 
df2 = xl.parse(0, skiprows=12).dropna(axis=1, how='all') 

結果:

In [123]: df1 
Out[123]: 
    a b c 
0 78 68 33 
1 62 26 30 
2 99 35 13 
3 73 97 4 
4 85 7 53 
5 80 20 95 
6 40 52 96 
7 36 23 76 
8 96 73 37 
9 39 35 24 

In [124]: df2 
Out[124]: 
    c1 c2 c3 c4 
0 78 88 59 a 
1 82 4 64 a 
2 35 9 78 b 
3 0 11 23 b 
4 61 53 29 b 
5 51 36 72 c 
6 59 36 45 c 
7 7 64 8 c 
8 1 83 46 d 
9 30 47 84 d 
1

在整個csv文件第一讀:

import pandas as pd 
df = pd.read_csv('path_to\\your_data.csv') 

,然後獲得各個幀,爲例如,使用:

df1 = df.iloc[:100,:] 
df2 = df.iloc[100:200,:] 
+1

如果它是一個CSV文件,我們可以簡單地使用'skiprows'和'nrows'參數。不幸的是'nrows'沒有爲'pd.read_excel'實現 – MaxU

相關問題