我的数据集df
如下:
time high low offset
2017-01-01 1.012 0.921 NaN
2017-01-02 1.019 0.934 NaN
2017-01-03 1.213 NaN 0.982
2017-01-04 1.112 0.965 NaN
在这里,low
的值是NaN
或offset
的值是NaN
,但两者都不是
我想创建一个名为low_offset_merge
的新列
,以便low_offset_merge
将包含low
和offset
的合并值,并且都将具有number
值而没有NaN
,如下所示:
time high low offset low_offset_merge
2017-01-01 1.012 0.921 NaN 0.921
2017-01-02 1.019 0.934 NaN 0.934
2017-01-03 1.213 NaN 0.982 0.982
2017-01-04 1.112 0.965 NaN 0.965
我做了什么?
- First, check if `low` has `NaN` values and set the value
df.loc[df['low'] != 'NaN', 'low_offset_merge'] = df['offset']
- Second, fill in the `NaN` column
df['low_offset_merge'] = df['low_offset_merge'].fillna(value=df['offset'])
我正在寻找一种解决方案,请您帮忙?
答案 0 :(得分:1)
您最近一次尝试使用fillna
的事情已经结束。您无需先检查NaN
的值,只需用另一列中的值直接填充缺少的值即可:
df['low_offset_merge'] = df['low'].fillna(df['offset'])