猿问

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

这是我输入的代码:


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 列相同?


www说
浏览 359回答 3
3回答

桃花长相依

您将整个列设置为iwith df["B"] = i。在您的最后一次迭代中,iis -1,因此您的整个列B都设置为-1。如果你想设置B为A,你可以使用这个(不需要 for 循环):df['B'] = df['A']

三国纷争

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

MM们

改变for i in df['A']:    df["B"] = i 到for i, item in df['A'].items():    df.ix[i, "B"] = item
随时随地看视频慕课网APP

相关分类

Python
我要回答