这是我输入的代码: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个赞
您将整个列设置为i
with df["B"] = i
。在您的最后一次迭代中,i
is -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
提交
取消