给出以下数据框:
import pandas as pd
d = pd.DataFrame({'a':[1,2,3],'b':[np.nan,5,6]})
d
a b
0 1 NaN
1 2 5.0
2 3 6.0
Run Code Online (Sandbox Code Playgroud)
我想用列名替换所有非空值.
期望的结果:
a b
0 a NaN
1 a b
2 a b
Run Code Online (Sandbox Code Playgroud)
实际上,我有很多专栏.
提前致谢!
更新以从根回答: 要对列的子集执行此操作:
d.loc[:,d.columns[3:]] = np.where(d.loc[:,d.columns[3:]].notnull(), d.loc[:,d.columns[3:]].columns, d.loc[:,d.columns[3:]])
Run Code Online (Sandbox Code Playgroud)