我在转换一个列时遇到问题,该列同时包含字符串格式(类型: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[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()方法,但这种方式我获得浮点数,而不是整数。.
有人帮忙吗?!谢谢大家!
注意:csv是我的数据帧的名称;对不起,如果我不是很清楚,我在提高英语语言!
您可以使用to_numeric
,但不可能使用NaN
值获取int
-它们总是转换为浮动
:请参阅na类型促销。
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
问题内容: 我收到 ValueError:无法将float NaN转换为整数 ,原因如下: “ x”显然是csv文件中的一列,但我无法在文件中发现任何 浮点NaN ,也无法理解其含义。 当我将列读为String时,它的值就像-1,0,1,… 2000,对我来说,它们看起来都非常漂亮。 当我将列读为float时,可以加载它。然后它显示值为-1.0,0.0等,仍然没有任何NaN-s 我尝试使用 e
例如,它不是返回2,而是返回“11” 我正在从该API收集数据:https://www.hatchways.io/api/assessment/students obs(为了检索数据,我创建了一个服务:export class StudentsService{ String="https://www.hatchways.io/api/assessment/students"; 构造函数(私有htt
给定如下所示的数据帧 您可能会注意到,这里所有的列都已转换为类型。是否有办法将某些列转换为? 尝试了以下方法 这会引发错误 阅读有关可为空的整数数据类型的信息,然后重试 这会引发错误
我有这个“file.csv”文件要和熊猫一起读: 使用 输出为: 我知道,列是一个完整的字符串,因为: 我需要将其作为字符串列表来阅读,如。我尝试了这个问题中提供的解决方案,但没有成功,因为我的和字符实际上会把事情搞砸。 预期输出应为:
问题内容: 我有一个Pandas Dataframe,如下所示: 我想用一个空字符串删除NaN值,使其看起来像这样: 问题答案: 这可能会有所帮助。它将用空字符串替换所有NaN。
问题内容: 正如标题所说。我不认为有可能这样做,但如果可以告诉我。 这是我正在编写的bukkit(minecraft服务器)插件所必需的。我要执行一个命令:tnt [power]。电源是我想转换为浮点数的返回字符串。 谢谢 问题答案: 用于进行转换。 和之间的区别只是回报。如果需要(对象),请使用前者;如果要数字,请使用后者。