如何基于条件将DataFrame中空字符串的col1赋值为col2的值?
如何将DataFrame中col1为空字符串的记录替换为对应col2的值?
你的代码无法正常运行主要有两个问题:
- 当前写法会替换整行数据,而非仅更新
col1列; - 列名
col1需要用字符串引号包裹(df['col1']),否则会被当成未定义变量处理。
以下是几种正确的实现方式:
方法1:用loc精准定位更新(推荐)
df.loc[df['col1'] == '', 'col1'] = df['col2']
通过loc同时指定行筛选条件(df['col1'] == '')和目标列('col1'),仅修改符合条件的行的col1值,不会影响其他列数据。
方法2:用mask方法替换
df['col1'] = df['col1'].mask(df['col1'] == '', df['col2'])
mask方法会将满足条件的元素替换为指定值,这里就是把col1中的空字符串替换为对应行的col2值。
方法3:用where方法反向替换
df['col1'] = df['col1'].where(df['col1'] != '', df['col2'])
where方法会保留满足条件(df['col1'] != '')的元素,不满足条件的空字符串则替换为col2的值。
内容的提问来源于stack exchange,提问作者PythonDeveloper
相关产品推荐
相关产品推荐

