我想從單個 Excel 檔案中的多個作業表中匯入一列資料,并創建一個包含所有列的大型資料框。此外,我希望新列的名稱是一個字串,它也取自 excel 檔案。
我嘗試了幾種不同的方法,每種方法都有不同的問題,但這是一個有效的開始:
import pandas as pd
file = r'C:\Users\pazam\OneDrive\Desktop\neuromastCount\sf\Final_Raw.xlsx' #SF
path = r'C:\Users\pazam\OneDrive\Desktop\neuromastCount\sf'
results_raw = pd.DataFrame()
for i in range(19): #19 sheets
df = pd.read_excel(file, usecols='N',skiprows = range(0,37),nrows=36000,engine='openpyxl',header=None, sheet_name=i)
trt = pd.read_excel(file, usecols='G',nrows=1,engine='openpyxl',header=None, sheet_name=i)
# then something that adds df to results_raw as a new column with the string in trt as column header
raw_csv = path "/results_raw.csv"
results_raw.to_csv(raw_csv)
謝謝!
uj5u.com熱心網友回復:
此代碼將檔案中的所有作業表讀入資料框字典中。
然后它會創建單列資料框,每個資料框都由 N 列的值組成,列名來自 G 列的第一個單元格。
然后將使用 將這些資料幀連接在一起pd.concat。
import pandas as pd
file = 'Final_Raw.xlsx' #SF
df = pd.read_excel(file, sheet_name=None, header=None)
data = pd.concat([pd.DataFrame({v.iloc[0, 6]: v.iloc[:, 13]}) for k, v in df.items()], axis=1)
print(data)
Col1 Col2 Col3
0 Data1 Data25 Data36
1 Data2 Data26 Data37
2 Data3 Data27 Data38
3 Data4 Data28 Data39
4 Data5 Data29 Data40
5 Data6 Data30 Data41
6 Data7 Data31 Data42
7 Data8 Data32 Data43
8 Data9 Data33 Data44
9 Data10 Data34 Data45
10 Data11 Data35 Data46
11 Data12 NaN Data47
12 Data13 NaN NaN
13 Data14 NaN NaN
14 Data15 NaN NaN
15 Data16 NaN NaN
16 Data17 NaN NaN
17 Data18 NaN NaN
18 Data19 NaN NaN
19 Data20 NaN NaN
20 Data21 NaN NaN
21 Data22 NaN NaN
22 Data23 NaN NaN
23 Data24 NaN NaN
表 1

表 2

Sheet3

uj5u.com熱心網友回復:
使用read_excelwithsheet_name=None閱讀所有作業表:
dfs = pd.read_excel(file, sheet_name=None)
df = pd.concat(dfs)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/355479.html
