为了账号安全,请及时绑定邮箱和手机立即绑定

从float类型转为int类型后,为什么python中的数字全部变成了-1?

从float类型转为int类型后,为什么python中的数字全部变成了-1?

www说 2021-11-30 10:26:52
这是我输入的代码:df = pd.DataFrame({'A': [1.6,1.2,3.9,4.5, np.nan]})  df['A'] = df['A'].fillna(-1).astype(int)  for i in df['A']:      df["B"] = i  df  但我得到的结果是这样的:那么为什么 B 列会全部显示为 -1 而不是与 A 列相同?
查看完整描述

3 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

您将整个列设置为iwith df["B"] = i。在您的最后一次迭代中,iis -1,因此您的整个列B都设置为-1

如果你想设置BA,你可以使用这个(不需要 for 循环):

df['B'] = df['A']


查看完整回答
反对 回复 2021-11-30
?
三国纷争

TA贡献1804条经验 获得超7个赞

在您的 for 循环中,您df["B"]每次都重新分配整个值。df['A']np.nan) 中的最后一个值转换为 int 时是-1. 由于您是df["B"]整体设置,因此所有值都分配为-1.


查看完整回答
反对 回复 2021-11-30
?
MM们

TA贡献1886条经验 获得超2个赞

改变


for i in df['A']:

    df["B"] = i 


for i, item in df['A'].items():

    df.ix[i, "B"] = item


查看完整回答
反对 回复 2021-11-30
  • 3 回答
  • 0 关注
  • 358 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信