【发布时间】:2018-01-31 04:15:53
【问题描述】:
给定以下数据框:
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
我想用列名替换所有非空值。
想要的结果:
a b
0 a NaN
1 a b
2 a b
实际上,我有很多专栏。
提前致谢!
更新以从 root 回答: 要在列的子集上执行此操作:
d.loc[:,d.columns[3:]] = np.where(d.loc[:,d.columns[3:]].notnull(), d.loc[:,d.columns[3:]].columns, d.loc[:,d.columns[3:]])
【问题讨论】:
-
如果您想将我的方法用于子集,则不需要
loc。查看我的编辑。
标签: python pandas dataframe replace