import csv import requests import pandas as pd #prefix = '臺北市大安區' #prefix = '臺中市' prefix='' # 需設定抓取的開放資料url位置 url = "" prefix_list = [] row_count = 0 with requests.Session() as s: download = s.get(url) #取得url的下載資料 decoded_content = download.content.decode('utf-8') #把下載資料編碼成utf8 cr = csv.reader(decoded_content.splitlines(), delimiter=',') #用csv.reader把資料分行並存入cr變數中 original_list = list(cr) #把csv讀入的資料轉換成方便處理的list格式 print('original_list len = %d' % (len(original_list)-1)) #列印有幾筆資料 # 計算符合prefix 區域條件的有幾筆 # ---------------------------------- for row in original_list: row_count = row_count + 1 #跳過第1筆,因為是表頭欄位文字 if row_count != 1: if prefix == '': prefix_list.append(row) elif row[2].startswith(prefix): #如果資料符合prefix,就把資料加入prefix_list中 prefix_list.append(row) print('prefix_list len= %d' % len(prefix_list)) #列印符合條件的有幾筆 def myFunc(row): return int(row[4]) #row[4]代表成人口罩剩餘數 prefix_list.sort(key=myFunc, reverse=True) #按照口罩剩餘數由大到小排序 prefix_list.insert(0, original_list[0]) #在prefix_list資料中,加入表頭欄位資訊,方便閱讀 mask_df = pd.DataFrame(prefix_list) #把prefix_list資料轉換成pdDataFrame格式,並存入mask_df with pd.option_context('display.max_rows', None, 'display.max_columns', None): display(mask_df) #列印mask_df資料 # original_list #Note: "https://data.nhi.gov.tw/resource/mask/maskdata.csv"