Python Pandas 直接讀取 Google Sheets(不須透過 Google Sheets API)

Case1:只有1個工作表

In [1]:
import pandas as pd

# 將 google sheet的工作表設定為,知道網址連結就可以檢視
sheet ='https://docs.google.com/spreadsheets/d/1CNGumnGY0ieRqC7f-HyDk4bDduRjz5Vmbs/edit#gid=0'
url_data = sheet.replace('/edit#gid=', '/export?format=csv&gid=')

df = pd.read_csv(url_data)
In [2]:
print(len(df))
df
30
Out[2]:
排序 學測應試號碼 考生姓名 身分代碼 國文 英文 數學 社會 自然 總級分 學科能力測驗成績 審查資料 面試 指定項目甄試成績 個人申請總成績 名次 附註
0 1 10033861 張俊嘉 1 12 11 12 14 11 60 23.62 81.00 83.67 57.76 81.39 34 不錄取,未達最低 錄取分數
1 2 10110042 黃穎萱 1 12 8 13 14 11 58 23.00 83.33 92.33 61.93 84.93 12 正取12
2 3 10111172 李鳳善 1 13 14 8 11 12 58 22.87 80.67 81.67 56.86 79.74 41 不錄取,未達最低 錄取分數
3 4 10127348 張慶松 1 11 12 15 11 11 60 24.37 84.67 89.00 61.00 85.38 9 正取9
4 5 10129065 李心怡 1 12 13 10 13 13 61 24.12 86.00 89.00 61.40 85.53 8 正取8
5 6 10148374 朱佩珊 1 13 12 11 12 11 59 23.37 81.00 85.33 58.43 81.81 30 不錄取,未達最低 錄取分數
6 7 10159940 杜怡婷 1 13 11 14 10 12 60 24.50 81.00 85.67 58.56 83.07 23 不錄取,未達最低 錄取分數
7 8 10163034 彭緯聿 1 12 13 11 12 13 61 24.37 78.67 84.67 57.46 81.84 29 不錄取,未達最低 錄取分數
8 9 10170573 蕭惠君 1 13 12 12 12 11 60 23.87 77.67 84.00 56.90 80.78 37 不錄取,未達最低 錄取分數
9 10 10172046 楊哲銘 1 12 13 11 13 12 61 24.12 80.33 85.00 58.09 82.22 27 不錄取,未達最低 錄取分數
10 11 10173537 李馨慧 1 13 13 11 12 11 60 23.75 84.67 86.33 59.93 83.68 18 不錄取,未達最低 錄取分數
11 12 10178838 何侑劭 1 12 13 12 11 12 60 24.12 85.67 0.00 25.70 49.83 ## 不錄取,未通過指 定項目檢定
12 13 10181637 洪青凱 1 12 14 11 12 11 60 23.75 81.33 84.33 58.13 81.88 28 不錄取,未達最低 錄取分數
13 14 10195746 毛彥志 1 12 14 11 12 9 58 22.75 80.67 85.00 58.20 80.95 35 不錄取,未達最低 錄取分數
14 15 10196244 黃啟斌 1 14 13 11 12 11 61 24.12 80.67 81.33 56.73 80.86 36 不錄取,未達最低 錄取分數
15 16 10208250 吳向惟 1 12 13 11 11 11 58 23.12 86.67 88.00 61.20 84.33 15 正取15
16 17 10213841 鄭宇瑄 1 12 12 13 12 11 60 24.00 80.33 81.67 56.76 80.77 38 不錄取,未達最低 錄取分數
17 18 10214143 李涵迪 1 11 12 10 14 11 58 22.62 81.33 77.67 55.46 78.09 42 不錄取,未達最低 錄取分數
18 19 10218344 陳如君 1 11 13 8 14 12 58 22.50 87.67 91.33 62.83 85.33 10 正取10
19 20 10221035 陳慧發 1 11 12 14 13 12 62 24.87 83.00 85.67 59.16 84.04 16 不錄取,未達最低 錄取分數
20 21 10221861 王聖全 1 13 10 12 13 12 60 23.87 81.33 88.33 59.73 83.61 19 不錄取,未達最低 錄取分數
21 22 10223472 王芳羽 1 12 11 11 14 12 60 23.62 89.00 89.00 62.30 85.93 4 正取4
22 23 10224674 林凱鈞 1 14 11 10 14 12 61 23.87 85.67 84.00 59.30 83.18 22 不錄取,未達最低 錄取分數
23 24 10234247 洪玟君 1 13 12 8 13 12 58 22.62 84.00 81.00 57.60 80.23 40 不錄取,未達最低 錄取分數
24 25 10235547 張鈞元 1 12 8 14 13 12 59 23.75 82.33 83.33 58.03 81.78 31 不錄取,未達最低 錄取分數
25 26 10240760 葉誠妤 1 12 9 12 12 13 58 23.37 82.00 88.67 60.06 83.44 20 不錄取,未達最低 錄取分數
26 27 10244938 張立白 1 11 14 11 12 11 59 23.37 81.67 84.33 58.23 81.61 33 不錄取,未達最低 錄取分數
27 28 10245260 林宏成 1 13 12 8 14 11 58 22.37 87.67 86.67 60.96 83.34 21 不錄取,未達最低 錄取分數
28 29 10247745 許靖雯 1 13 11 12 11 12 59 23.75 86.00 88.67 61.26 85.02 11 正取11
29 30 10249766 張嘉侑 1 11 12 10 12 13 58 23.12 85.00 89.33 61.23 84.36 14 正取14

Case2:多個工作表,要讀取的工作表為「sample,資料有10筆」

In [3]:
# google sheets指定工作表時,工作表命名不要有中文

sheet_id = '1CNKPVLmEqhWGumnGY0ieRqC7f-HyDk4bDduRjz5Vmbs'
sheet_name = 'sample'

url = f'https://docs.google.com/spreadsheets/d/{sheet_id}/gviz/tq?tqx=out:csv&sheet={sheet_name}'

df = pd.read_csv(url)
In [4]:
print(len(df))
df
10
Out[4]:
排序 學測應試號碼 考生姓名 身分代碼 國文 英文 數學 社會 自然 總級分 學科能力測驗成績 審查資料 面試 指定項目甄試成績 個人申請總成績 名次 附註
0 1 10033861 張俊嘉 1 12 11 12 14 11 60 23.62 81.00 83.67 57.76 81.39 34 不錄取,未達最低 錄取分數
1 2 10110042 黃穎萱 1 12 8 13 14 11 58 23.00 83.33 92.33 61.93 84.93 12 正取12
2 3 10111172 李鳳善 1 13 14 8 11 12 58 22.87 80.67 81.67 56.86 79.74 41 不錄取,未達最低 錄取分數
3 4 10127348 張慶松 1 11 12 15 11 11 60 24.37 84.67 89.00 61.00 85.38 9 正取9
4 5 10129065 李心怡 1 12 13 10 13 13 61 24.12 86.00 89.00 61.40 85.53 8 正取8
5 6 10148374 朱佩珊 1 13 12 11 12 11 59 23.37 81.00 85.33 58.43 81.81 30 不錄取,未達最低 錄取分數
6 7 10159940 杜怡婷 1 13 11 14 10 12 60 24.50 81.00 85.67 58.56 83.07 23 不錄取,未達最低 錄取分數
7 8 10163034 彭緯聿 1 12 13 11 12 13 61 24.37 78.67 84.67 57.46 81.84 29 不錄取,未達最低 錄取分數
8 9 10170573 蕭惠君 1 13 12 12 12 11 60 23.87 77.67 84.00 56.90 80.78 37 不錄取,未達最低 錄取分數
9 10 10172046 楊哲銘 1 12 13 11 13 12 61 24.12 80.33 85.00 58.09 82.22 27 不錄取,未達最低 錄取分數

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *