Python 熊猫将字符串列和NaN(浮点)转换为整数,保留NaN
我在转换一个列时遇到问题,该列同时包含字符串格式(类型:str)和NaN(类型:float64)的两位数。我想得到一个这样的新列:NaN是NaN,整数是2位数的字符串格式。 例如:我想从列YearBirth1获取列Yearbirth2,如下所示:Python 熊猫将字符串列和NaN(浮点)转换为整数,保留NaN,python,pandas,type-conversion,nan,Python,Pandas,Type Conversion,Nan,我在转换一个列时遇到问题,该列同时包含字符串格式(类型:str)和NaN(类型:float64)的两位数。我想得到一个这样的新列:NaN是NaN,整数是2位数的字符串格式。 例如:我想从列YearBirth1获取列Yearbirth2,如下所示: YearBirth1 #numbers here are formatted as strings: type(YearBirth1[0])=str 34 # and NaN are floats: type(YearBirth1[
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)
csv['YearBirth2'] = (csv['YearBirth1']!=NaN).astype(int)
csv['YearBirth2'] = (csv['YearBirth1']!='NaN').astype(int)
正如我所料,我得到了这个错误:
ValueError: cannot convert float NaN to integer
NameError: name 'NaN' is not defined
所以我试了一下:
csv['YearBirth2'] = (csv['YearBirth1']).astype(int)
csv['YearBirth2'] = (csv['YearBirth1']!=NaN).astype(int)
csv['YearBirth2'] = (csv['YearBirth1']!='NaN').astype(int)
得到了这个错误:
ValueError: cannot convert float NaN to integer
NameError: name 'NaN' is not defined
最后,我尝试了以下方法:
csv['YearBirth2'] = (csv['YearBirth1']).astype(int)
csv['YearBirth2'] = (csv['YearBirth1']!=NaN).astype(int)
csv['YearBirth2'] = (csv['YearBirth1']!='NaN').astype(int)
没有错误,但当我检查列YearBirth2时,结果如下:
YearBirth2:
1
1
1
1
1
1
非常糟糕。。我认为这个想法是正确的,但是让Python能够理解我对NaN的意思存在一个问题。。也许我尝试的方法是错误的
我还使用了pd.to_numeric()方法,但通过这种方式,我获得的是浮点数,而不是整数
有人帮忙吗?!
谢谢大家
注意:csv是我的数据帧的名称;
对不起,如果我不是很清楚,我在提高英语语言 您可以使用,但无法使用NaN
值获取int
——它们总是转换为float
:
我忘了说我也试过pd.to_numeric,但这样我得到的是浮点数,而不是整数。你不能,
NaN
不能用整数表示,所以你需要接受浮点数,或者用可以用整数表示的东西替换NaN
。好吧,如果NaN仍然是浮点数,没问题,但是我想要“string 2digits number”要转换为int,而不是浮动,这真的是不可能的?!在pandas中,这是不可能的,通常可以使用混合的数据类型,但对于纯数字类型,数据类型将需要是同质的。您的原始列有字符串和NaN
这是允许的,如果您有int、strings和float,这是允许的,但纯数字列必须是所有int/floatsOk,我不知道,谢谢EdChum的解释!