You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修正Pandas中字符修正标记列correct_flag的赋值错误?

解决Pandas中correct_flag列赋值错误的问题

原代码的问题在于使用了全局的if df['name'].str.contains('|Ã|Ñ').any()判断——只要DataFrame里有任意一行包含目标特殊字符,就会给所有行的correct_flag赋值为1,而不是逐行检测该行是否实际被修正。

以下是修正后的代码:

import pandas as pd

d= {'name': ["AÃÑA", "23234", "BJORK", "3","JANEDOE123"]}
df=pd.DataFrame(data=d, index=[0, 1, 2, 3,4])

# 定义字符映射,生成修正后的列
trans_map = str.maketrans('ÃÑ','AN')
df['name_correct'] = df['name'].str.translate(trans_map)

# 逐行对比原列和修正后的列,判断是否进行了修正
df['correct_flag'] = (df['name'] != df['name_correct']).astype(int)

print(df)

代码说明:

  • 保留原有的字符映射逻辑生成name_correct列,确保修正结果符合预期。
  • 通过df['name'] != df['name_correct']生成布尔值序列,再用.astype(int)把True转为1,False转为0,实现逐行标记是否被修正的需求。

运行后输出的correct_flag列将只有第一行为1,其余行均为0,符合预期结果。

内容的提问来源于stack exchange,提问作者user3641630

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 19:15:17