我有一个数组:
([ 137.55021238, 125.30017675, 130.20181675, 109.47348838])
我需要数组值来替换b列,索引号保持不变:
Index a b
0 0.671399 Nan
35 0.446172 Nan
63 0.614758 Nan
72 0.634448 Nan
我尝试使用替换,但它没有用。是否有另一种方法可以在不将数组转换为数据框并合并的情况下执行此操作?
答案 0 :(得分:4)
vals = [137.55021238, 125.30017675, 130.20181675, 109.47348838]
选项1
直接分配。
df['b'] = vals
print(df)
a b
Index
0 0.671399 137.550212
35 0.446172 125.300177
63 0.614758 130.201817
72 0.634448 109.473488
选项2
df.assign
df = df.assign(b=vals)
print(df)
a b
Index
0 0.671399 137.550212
35 0.446172 125.300177
63 0.614758 130.201817
72 0.634448 109.473488
选项3
df.fillna
df.b = df.b.fillna(pd.Series(vals, index=df.index))
print(df)
a b
Index
0 0.671399 137.550212
35 0.446172 125.300177
63 0.614758 130.201817
72 0.634448 109.473488
如果您的值为Nan
(字符串)而不是NaN
(浮点数),则可以使用df.replace
转换它:
df = df.replace('Nan', np.nan)