如何在pandas中搜索指定关键词并修改对应单元格内容
针对你的需求,优先用pandas原生矢量化字符串操作实现,效率远高于手动遍历单元格,具体实现如下:
仅处理指定列(示例中为y列)
这是最常用的场景,也是性能最优的写法:
import pandas as pd # 构造示例DataFrame,你可以替换为自己的数据源 df = pd.DataFrame( data={'x': [1,2,3], 'y': ['information', 'information and some stuff', 'information and random stuff']}, index=['A', 'B', 'C'] ) # 配置关键词,前后加空格避免误匹配到包含and的普通单词(如sand、anderson等) split_keyword = ' and ' # 分割后取第一个片段,无关键词的内容会完整保留 df['y'] = df['y'].str.split(split_keyword, n=1).str.get(0)
处理全表所有字符串列
如果需要对所有字符串类型的单元格做统一处理,可以用下面的写法:
split_keyword = ' and ' # 筛选所有字符串类型的列 str_columns = df.select_dtypes(include='object').columns df[str_columns] = df[str_columns].apply(lambda col: col.str.split(split_keyword, n=1).str.get(0))
处理后的输出完全符合你的预期:
x y A 1 information B 2 information C 3 information
性能说明
上述写法底层为C实现的矢量化操作,相比Python层的for循环遍历单元格,性能提升可达10~100倍,万行以上数据集优势尤为明显。
内容的提问来源于stack exchange,提问作者maddes
相关产品推荐
相关产品推荐

