Python中Pandas布尔列值替换失败问题求助
问题分析与解决
你的代码里df1['remark']是布尔类型列(值是Python原生的True/False,不是字符串"True"),所以用字符串"True"去替换自然匹配不到,导致替换无效。
正确实现方式
直接针对布尔值True进行替换即可,以下是两种常用写法:
写法1:使用replace字典映射
import pandas as pd df1 = pd.DataFrame({'NOTES': ["PREPAID_HOME_SCREEN_MAMO","SCREEN_MAMO", "> Unable to connect internet>4G Compatible>Set", "No>Not Barred>Active>No>Available>Others>", "Internet Not Working>>>Unable To Connect To"]}) # 生成布尔类型的remark列 df1['remark']= df1['NOTES'].str.contains('Internet')|df1['NOTES'].str.contains('MAMO') # 替换布尔值True为"Data",False保持不变 df2 = df1['remark'].replace({True: "Data"})
写法2:使用map自定义逻辑
如果需要更灵活的判断逻辑,也可以用map实现:
df2 = df1['remark'].map(lambda x: "Data" if x else x)
验证结果
运行后df2的输出为:
0 Data 1 Data 2 Data 3 False 4 Data Name: remark, dtype: object
内容的提问来源于stack exchange,提问作者Virendra Patel
相关产品推荐
相关产品推荐

