今天不是爬蟲的實戰,今天是要來使用Pandas套件,示範的檔案是來自政府資料開放平台裡就醫中的台灣COVID-19冠狀病毒檢測每日送驗數,可以直接下載CSV格式的檔案。
裡面的資料長這樣~
通報日,法定傳染病通報,居家檢疫送驗,擴大監測送驗,Total
2020/1/15,0.0,0.0,0.0,0.0
2020/1/16,4.0,0.0,0.0,4.0
2020/1/17,0.0,0.0,0.0,0.0
2020/1/18,1.0,0.0,0.0,1.0
...
接下來要把它載入,就可以輸出你需要的內部資料了。
import pandas as pd
df = pd.read_csv("covid19_tw_specimen.csv", encoding = "utf-8")
print(df.info()) # 欄位資料型別等資訊
print("-"*30)
print(df.describe()) # 統計資訊
print("-"*30)
print(df.head()) # 前五筆資料
print("-"*30)
print(df.tail()) # 最後五筆資料
head()和tail()的預設都是輸出五筆資料,如果你想要自訂輸出的數量,就在括號內寫下數字就好了。輸出結果如下,不過我覺得可能是環境的問題,它長得好醜,最上面的字沒有對齊,用jupyter notebook的話好像會直接出現表格,會好看很多~
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 979 entries, 0 to 978
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 通報日 979 non-null object
1 法定傳染病通報 979 non-null float64
2 居家檢疫送驗 979 non-null float64
3 擴大監測送驗 979 non-null float64
4 Total 979 non-null float64
dtypes: float64(4), object(1)
memory usage: 38.4+ KB
None
------------------------------
法定傳染病通報 居家檢疫送驗 擴大監測送驗 Total
count 979.000000 979.000000 979.000000 979.000000
mean 6166.978550 1.743616 11367.575077 17536.297242
std 16663.322277 12.474458 12583.988198 23458.609351
min 0.000000 0.000000 0.000000 0.000000
25% 27.000000 0.000000 267.000000 299.500000
50% 67.000000 0.000000 7939.000000 8395.000000
75% 263.000000 0.000000 20384.500000 25789.000000
max 93451.000000 166.000000 61837.000000 117341.000000
------------------------------
通報日 法定傳染病通報 居家檢疫送驗 擴大監測送驗 Total
0 2020/1/15 0.0 0.0 0.0 0.0
1 2020/1/16 4.0 0.0 0.0 4.0
2 2020/1/17 0.0 0.0 0.0 0.0
3 2020/1/18 1.0 0.0 0.0 1.0
4 2020/1/19 1.0 0.0 0.0 1.0
------------------------------
通報日 法定傳染病通報 居家檢疫送驗 擴大監測送驗 Total
974 2022/9/15 41675.0 0.0 18047.0 59722.0
975 2022/9/16 39656.0 0.0 16634.0 56290.0
976 2022/9/17 39566.0 0.0 14340.0 53906.0
977 2022/9/18 0.0 0.0 0.0 0.0
978 2022/9/19 0.0 0.0 0.0 0.0
如果你有不想要的欄位當然可以刪除掉,使用drop(["欄位名稱"], axis=1)
,axis=1為欄,axis=0則代表列。
import pandas as pd
df = pd.read_csv("covid19_tw_specimen.csv", encoding = "utf-8")
dfNew = df.drop(["Total"], axis=1)
print(df)
print("-"*30)
print(dfNew)
下面是刪除前和刪除後的對比~
通報日 法定傳染病通報 居家檢疫送驗 擴大監測送驗 Total
0 2020/1/15 0.0 0.0 0.0 0.0
1 2020/1/16 4.0 0.0 0.0 4.0
2 2020/1/17 0.0 0.0 0.0 0.0
3 2020/1/18 1.0 0.0 0.0 1.0
4 2020/1/19 1.0 0.0 0.0 1.0
.. ... ... ... ... ...
974 2022/9/15 41675.0 0.0 18047.0 59722.0
975 2022/9/16 39656.0 0.0 16634.0 56290.0
976 2022/9/17 39566.0 0.0 14340.0 53906.0
977 2022/9/18 0.0 0.0 0.0 0.0
978 2022/9/19 0.0 0.0 0.0 0.0
[979 rows x 5 columns]
------------------------------
通報日 法定傳染病通報 居家檢疫送驗 擴大監測送驗
0 2020/1/15 0.0 0.0 0.0
1 2020/1/16 4.0 0.0 0.0
2 2020/1/17 0.0 0.0 0.0
3 2020/1/18 1.0 0.0 0.0
4 2020/1/19 1.0 0.0 0.0
.. ... ... ... ...
974 2022/9/15 41675.0 0.0 18047.0
975 2022/9/16 39656.0 0.0 16634.0
976 2022/9/17 39566.0 0.0 14340.0
977 2022/9/18 0.0 0.0 0.0
978 2022/9/19 0.0 0.0 0.0
[979 rows x 4 columns]
好了今天就先到這邊,明天再來做一題練習~