Python 将int或string转换为float
我试图在名称上映射两个数据帧,以获取学生的Python 将int或string转换为float,python,pandas,Python,Pandas,我试图在名称上映射两个数据帧,以获取学生的id。返回的id中有一个小数。例如,如果name\u to\u id中的id为12345,则student中的id变为12345.0 为什么要添加这个小数点?我如何防止它 students[“id”]=students.name.map(name_to_id[“id”])尝试为您的学生这样做['id'] students.astype({'id': 'int32'}).dtypes 作为您的参考,我在:您能将您的姓名发布到\u id功能吗?另外,另一种
id
。返回的id
中有一个小数。例如,如果name\u to\u id
中的id
为12345
,则student
中的id
变为12345.0
为什么要添加这个小数点?我如何防止它
students[“id”]=students.name.map(name_to_id[“id”])
尝试为您的学生这样做['id']
students.astype({'id': 'int32'}).dtypes
作为您的参考,我在:您能将您的
姓名发布到\u id
功能吗?另外,另一种方法(对pandas来说可能更惯用)是左merge
。我猜当您使用任何pandas.read.
方法读取数据时,您希望指定dtype={'id':str}
。另外,您可能有几行缺少idNaN
是一个浮点值,不能存储在典型的int
dtype中。因此,pandas将整个列向上转换为float
,以便将所有值存储在一个合理的(即非对象)数据类型中。