如何使用Python和Pandas替换DataFrame列中含指定文本的内容
需求说明
现有如下Pandas DataFrame:
| Column A | Column B |
|---|---|
| Sub-123 | foco |
| Sub-321 | #foco, teste |
| Sub-332 | Foco, cod |
需要找出Column B中包含"Foco"(不区分大小写)的行,并将对应行的Column B内容替换为"Foco",最终得到:
| Column A | Column B |
|---|---|
| Sub-123 | Foco |
| Sub-321 | Foco |
| Sub-332 | Foco |
实现方法
可以用Pandas的str.contains()方法匹配字符串(设置case=False忽略大小写),结合布尔索引完成替换:
import pandas as pd # 构造原始DataFrame df = pd.DataFrame({ "Column A": ["Sub-123", "Sub-321", "Sub-332"], "Column B": ["foco", "#foco, teste", "Foco, cod"] }) # 匹配包含"Foco"的行并替换值 df.loc[df["Column B"].str.contains("Foco", case=False), "Column B"] = "Foco" # 查看处理后的结果 print(df)
代码说明
df["Column B"].str.contains("Foco", case=False):生成布尔序列,标记出Column B中包含"Foco"(不区分大小写)的行df.loc[布尔序列, "Column B"] = "Foco":通过布尔索引定位目标行,将对应Column B的内容替换为"Foco"
内容的提问来源于stack exchange,提问作者Cleicy Guião
相关产品推荐
相关产品推荐

