如何在Pandas数据框中为匹配列追加字符串(避免误改列)
解决Pandas中仅指定列追加文本的问题
嘿,我懂你碰到的麻烦了——你本来只想在columns1和columns2值匹配的行里,给这两列加上(Match)后缀,结果连columns0也被自动追加了文本,这肯定不是你想要的效果对吧?
问题根源
你之前用的代码:
df.loc[(df['columns1'] == df['columns2']), :] += ' (Match)'
这里的: 代表选中了所有列,所以只要行满足匹配条件,整行的每一列都会执行追加操作,自然columns0也被修改了。
正确实现方法
只需要把: 替换成你要修改的列名列表,明确指定只操作columns1和columns2即可:
# 仅针对目标列进行修改 df.loc[df['columns1'] == df['columns2'], ['columns1', 'columns2']] += ' (Match)'
效果对比
输入数据:
| columns0 | columns1 | columns2 |
|---|---|---|
| row1 | bill | bill |
| row2 | $0.00 | $0.00 |
| row3 | Free | $1.25 |
| row4 | $1.50 | $1.25 |
执行代码后的输出:
| columns0 | columns1 | columns2 |
|---|---|---|
| row1 | bill(Match) | bill(Match) |
| row2 | $0.00(Match) | $0.00(Match) |
| row3 | Free | $1.25 |
| row4 | $1.50 | $1.25 |
这样就精准实现了你想要的效果——只有匹配的columns1和columns2会加上后缀,columns0保持原样。
内容的提问来源于stack exchange,提问作者adi kapoor
相关产品推荐
相关产品推荐

