【发布时间】:2021-09-07 04:05:30
【问题描述】:
我的 pandas 数据框有三个可能的条目:
- 1(整数)
- NaN
- 任意字符串
可以这样创建一个示例:
pd.DataFrame({'column1':['yes','some_string',np.NaN],
'column2':[np.NaN,np.NaN,'yes']}, columns=['column1','column2'])
我想实现以下目标:
- 无论元素值为
yes,我都希望将其替换为列名column1或column2; - 当元素为 NaN 时,应保持不变
- 如果有字符串
some_string我要放在括号里,附上and和对应的列名:'column1 and (some_string)'
我尝试了一个条件 df.apply 但它不起作用,因为它应用于 Series 并且我不知道如何施加条件 (=='yes')
我也尝试过熊猫面具,但我不知道如何用不同的元素代替静态元素。
【问题讨论】:
-
df.apply传递axis=1将允许您选择行。系列标签也传递列名。
标签: python pandas replace apply