这是我输入的代码: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。
如果你想设置B为A,你可以使用这个(不需要 for 循环):
df['B'] = df['A']
三国纷争
TA贡献1804条经验 获得超7个赞
在您的 for 循环中,您df["B"]每次都重新分配整个值。df['A']( np.nan) 中的最后一个值转换为 int 时是-1. 由于您是df["B"]整体设置,因此所有值都分配为-1.
MM们
TA贡献1886条经验 获得超2个赞
改变
for i in df['A']:
df["B"] = i
到
for i, item in df['A'].items():
df.ix[i, "B"] = item
添加回答
举报
0/150
提交
取消
