我還在掌握pandas的作業方法。
我想做的是轉換一個列的型別(從字串到整數)。該列被編碼為字串資料,但其中大部分為整數值。我希望整個列的型別是整數。在少數無法轉換的情況下,我希望它只是NA/Nan.
。我正在從R遷移,在那里這種行為是可以預期的:
我正在從R遷移,在那里這種行為是可以預期的。
df <- data.frame(
"id" = c(1,2,3) 。
"age" = c("12", "not_an_age", "34半")
)
converted_df <- dplyr::mutate(df, age = as.numeric(age) )
轉換后的df
### output[/span]。
# id年齡
# 1 12
# 2 NA # 2 12
# 3 NA # 2 NA
在Python中
df = pd. DataFrame({'id':[1,2,3], 'age': ['12', 'not_an_age', '34.5']})
# not run
#作為型別只允許提出錯誤或忽略不允許強制。
df['age'].astype('int')
我怎樣才能在pandas中創建我所期望的R的結果?我感覺好像有一個函式/一個函式的引數被我遺忘了。
謝謝你
uj5u.com熱心網友回復:
為了處理混合整數和NaN,使用一個IntXXDType:
>>> pd.to_numeric(df.age, errors='coerce'/span>).astype(pd.Int16Dtype())
0 12
1 <NA>
2 <NA>
名稱:年齡,dtype。Int16
如果你使用int,它將引發一個例外:
>>> pd.to_numeric(df.age, errors='coerce'/span>).astype(int)
...
IntCastingNaNError。不能將非無限值(NA or inf)轉換成整數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/332426.html
標籤:
上一篇:是否有pandas的功能可以每天從一個日期列中抓取特定的時間戳?
下一篇:在bash中顯示睡眠時的進度
