如何在Pandas DataFrame字符串列每2个字符后插入指定字符
问题分析
你原来的代码逻辑错误在于,遍历对象是comment列的行序列,而非每个单元格内的字符串,因此无法对每个字符串做字符切片插入点号。
正确实现
方案1:正则替换(性能最优,适合大数据量)
直接用Pandas字符串方法结合正则匹配实现,代码如下:
import pandas as pd # 每2个字符后插入点号,最后去除末尾多余的点 df['comment'] = df['comment'].str.replace(r'(.{2})', r'\1.', regex=True).str.rstrip('.')
方案2:apply自定义函数(逻辑直观,易调整)
如果需要更灵活的自定义规则,可以用apply调用自定义函数实现:
import pandas as pd def insert_period(text): # 处理空值、空字符串场景 if pd.isna(text) or not text.strip(): return text # 每2个字符切片后用点号拼接 return '.'.join([text[i:i+2] for i in range(0, len(text), 2)]) df['comment'] = df['comment'].apply(insert_period)
两种方案都可以得到你预期的输出结果,空值、空字符串会保留原状态不会报错。
内容的提问来源于stack exchange,提问作者Larry
相关产品推荐
相关产品推荐

