给出以下数据框:
wd = wd.rstrip(b'\n')
我想用ColB的值替换ColA的值,但是我从不希望NaN值替换非NaN的值。我想要的输出是以下DataFrame:
import numpy as np
import pandas as pd
df = pd.DataFrame({"ColA": [1, 2, np.nan, 4, np.nan],
"ColB": [np.nan, 7, np.nan, 9, 10]})
ColA ColB
0 1.0 NaN
1 2.0 7.0
2 NaN NaN
3 4.0 9.0
4 NaN 10.0
我的实际数据很大,所以虽然我知道可以逐行进行迭代,但我正在寻找一种更有效的方法。
答案 0 :(得分:1)
df['ColA']= np.where(df['ColA'].notna(), np.where(df['ColB'].isna(),df['ColA'],df['ColB']), df['ColA'])