日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python字符串小数转化整数_python – Pandas将字符串列和NaN(浮点数)转换为整数,保持NaN...

發(fā)布時間:2025/4/16 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python字符串小数转化整数_python – Pandas将字符串列和NaN(浮点数)转换为整数,保持NaN... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

參見英文答案 > Convert Pandas column containing NaNs to dtype `int`????????????????????????????????????11個

我在轉換包含字符串格式(類型:str)和NaN(類型:float64)的2位數(shù)字的列時遇到問題.我想以這種方式獲得一個新列:NaN,其中有NaN和整數(shù),其中有兩個數(shù)字的字符串格式.

舉個例子:我想從列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()方法,但這種方式我獲得了浮點數(shù),而不是整數(shù).

有什么幫助?!

謝謝大家!

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...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。