將 Pandas 缺少值的列轉換為整數
處理 Pandas 資料幀時,通常需要指定某些列的資料類型。但是,如果列包含缺失值或空值 (NaN),則將其轉換為整數類型(例如“int”)可能會帶來挑戰。
遇到的問題:
為了示範這個問題,我們假設我們有一個從CSV 檔案讀取的Pandas 資料幀,其中包含一個名為「id 」的列,其中包含NaN。但是,我們需要將 'id' 列指定為整數類型。
錯誤訊息:
嘗試直接將'id' 列轉換為整數時在讀取CSV 檔案時,我們遇到以下錯誤:
df= pd.read_csv("data.csv", dtype={'id': int}) error: Integer column has NA values
或者,如果我們在讀取後嘗試轉換列類型CSV文件,我們得到:
df= pd.read_csv("data.csv") df[['id']] = df[['id']].astype(int) error: Cannot convert NA to integer
解決方案:
在Pandas 版本0.24 以上版本中,可以使用可空整數資料類型來表示缺失值的整數數據,用IntegerArray 實現。若要利用此功能:
from pandas.arrays import IntegerArray
arr = pd.array([1, 2, np.nan], dtype=pd.Int64Dtype())
df['id'] = df['id'].astype('Int64')
透過利用可空整數資料類型, Pandas 可以處理缺失值的整數列,同時保持其預期的資料類型。
以上是如何將帶有缺失值的 Pandas 列轉換為整數資料類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!