測試環境為 CentOS 8 (虛擬機)
pandas read_csv 匯入檔案時遇到空值時會幫忙填成 NaN (Not A Number 表示為未定義或是不可表示的值 ),可以使用以下方式來處理.
檔案範例
[root@localhost ~]# cat ts1.csv TimeStamp,Value 2022-12-23 6:36:22,100 2022-12-23 6:37:22,210 2022-12-23 6:38:22,
[root@localhost ~]# python3 Python 3.6.8 (default, Sep 10 2021, 09:13:53) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)] on linux Type "help", "copyright", "credits" or "license" for more information.
import pandas as pd df = pd.read_csv('ts1.csv')
預設空值時會幫忙填成 NaN
>>> df TimeStamp Value 0 2022-12-23 6:36:22 100.0 1 2022-12-23 6:37:22 210.0 2 2022-12-23 6:38:22 NaN
透過 isnull() 函數可以檢視哪個資料 NaN (回傳為 True).
>>> df.isnull() TimeStamp Value 0 False False 1 False False 2 False True
- fillna() 函數
或是直接用 fillna() 函數把 NaN 取代成其他數值.>>> df.fillna(0) TimeStamp Value 0 2022-12-23 6:36:22 100.0 1 2022-12-23 6:37:22 210.0 2 2022-12-23 6:38:22 0.0
- dropna 函數
dropna 函數可以有 NaN 行刪除.>>> df.dropna() TimeStamp Value 0 2022-12-23 6:36:22 100.0 1 2022-12-23 6:37:22 210.0
- keep_default_na=False
如不想轉換可以用 透過 read_csv 參數 keep_default_na=False 來保留成原空字串.import pandas as pd df = pd.read_csv('ts1.csv' , keep_default_na=False)
>>> df TimeStamp Value 0 2022-12-23 6:36:22 100 1 2022-12-23 6:37:22 210 2 2022-12-23 6:38:22
沒有解決問題,試試搜尋本站其他內容