这是我输入的代码:
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列呢?
答案 0 :(得分:2)
您正在使用i
将整个列设置为df["B"] = i
。在您的上一次迭代中,i
是-1
,因此整个列B
都设置为-1
。
如果您想将B
设置为A
,则可以使用它(不需要for循环):
df['B'] = df['A']
答案 1 :(得分:0)
在for循环中,每次都重新分配df["B"]
的整个值。转换为整数时,df['A']
(np.nan
)中的最后一个值为-1
。由于您将df["B"]
设置为一个整体,因此所有值均分配为-1
。
答案 2 :(得分:0)
更改
for i in df['A']:
df["B"] = i
到
for i, item in df['A'].items():
df.ix[i, "B"] = item