Python Pandas:匹配以'0'开头的单元格并替换为Unknown
解决以'0'开头的单元格替换问题
问题场景
需要将DataFrame中以'0'开头的单元格替换为Unknown,但之前的代码会误改所有包含'0'的单元格(比如40、70开头的)。
原始数据
column1 12 - abcsffj 40 - dhjsadjal 0 - dahdalk 70 - dkalskda
错误代码及问题
原代码使用str.contains('0')会匹配所有包含字符'0'的字符串,不管'0'在什么位置,导致40、70开头的单元格也被修改:
df.loc[df['column1'].str.contains('0'), 'column1'] = 'Unknown'
两种正确解决方案
方案1:使用str.startswith()(更直观)
直接判断字符串是否以'0'开头,逻辑清晰:
df.loc[df['column1'].str.startswith('0'), 'column1'] = 'Unknown'
方案2:使用正则表达式锚点^
用正则^0匹配字符串起始位置的'0',默认开启正则模式,可省略regex=True参数:
df.loc[df['column1'].str.contains('^0'), 'column1'] = 'Unknown'
执行后期望输出
column1 12 - abcsffj 40 - dhjsadjal Unknown 70 - dkalskda
内容的提问来源于stack exchange,提问作者Ziggy
相关产品推荐
相关产品推荐

