如何将pandas DataFrame指定列每行的第一个单词替换为MS
方法1:字符串分割拼接实现
这种方法逻辑直观,只拆分一次字符串避免多空格场景出错:
# n=1表示只按第一个空格分割1次,避免行内多个空格时内容被截断 df['hardware'] = 'MS ' + df['hardware'].str.split(' ', n=1).str[1]
如果你的数据存在部分行只有单个单词的场景,可以补充fillna处理空值:
df['hardware'] = ('MS ' + df['hardware'].str.split(' ', n=1).str[1]).fillna('MS')
方法2:正则替换实现(更简洁)
直接用正则匹配每行开头的第一个单词替换为MS即可:
# ^\w+ 匹配字符串开头的第一个连续单词字符,也就是每行的第一个单词 df['hardware'] = df['hardware'].str.replace(r'^\w+', 'MS', regex=True)
如果你要替换的第一个单词包含非字母数字的特殊字符,可以把正则模式改为r'^[^ ]+',适配范围更广。
两种方法都可以得到你给出的预期输出结果,你可以根据自己的使用习惯选择。
内容的提问来源于stack exchange,提问作者PythonBeginner
相关产品推荐
相关产品推荐

