python字符串小数转化整数_python – Pandas将字符串列和NaN(浮点数)转换为整数,保持NaN...
參見英文答案 > Convert Pandas column containing NaNs to dtype `int`????????????????????????????????????11個
我在轉換包含字符串格式(類型:str)和NaN(類型:float64)的2位數字的列時遇到問題.我想以這種方式獲得一個新列:NaN,其中有NaN和整數,其中有兩個數字的字符串格式.
舉個例子:我想從列YearBirth1獲取列Yearbirth2,如下所示:
YearBirth1 #numbers here are formatted as strings: type(YearBirth1[0])=str
34 # and NaN are floats: type(YearBirth1[2])=float64.
76
Nan
09
Nan
91
YearBirth2 #numbers here are formatted as integers: type(YearBirth2[0])=int
34 #NaN can remain floats as they were.
76
Nan
9
Nan
91
我試過這個:
csv['YearBirth2'] = (csv['YearBirth1']).astype(int)
正如我所料,我得到了這個錯誤:
ValueError: cannot convert float NaN to integer
所以我嘗試了這個:
csv['YearBirth2'] = (csv['YearBirth1']!=NaN).astype(int)
并得到這個錯誤:
NameError: name 'NaN' is not defined
最后我試過這個:
csv['YearBirth2'] = (csv['YearBirth1']!='NaN').astype(int)
沒有錯誤,但當我檢查列YearBirth2時,這是結果:
YearBirth2:
1
1
1
1
1
1
非常糟糕..我認為這個想法是對的,但是有一個問題讓Python能夠理解我對NaN的意思..或者我嘗試的方法可能是錯的..
我也使用了pd.to_numeric()方法,但這種方式我獲得了浮點數,而不是整數.
有什么幫助?!
謝謝大家!
P.S:csv是我的DataFrame的名稱;
對不起,如果我不太清楚,我正在改進英語!
解決方法:
您可以使用to_numeric,但不可能使用NaN值獲取int – 它們始終轉換為float:see na type promotions.
df['YearBirth2'] = pd.to_numeric(df.YearBirth1, errors='coerce')
print (df)
YearBirth1 YearBirth2
0 34 34.0
1 76 76.0
2 Nan NaN
3 09 9.0
4 Nan NaN
5 91 91.0
標簽:python,pandas,nan,type-conversion
來源: https://codeday.me/bug/20190828/1755321.html
總結
以上是生活随笔為你收集整理的python字符串小数转化整数_python – Pandas将字符串列和NaN(浮点数)转换为整数,保持NaN...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言sleep_编程代码:用C语言来实
- 下一篇: vc++ mfc 非客户区 描绘线_决战