如何将DataFrame的id列中含nov:k_的值重命名为k?
实现方法
使用pandas的str.contains()匹配目标子串后批量赋值即可,核心代码如下:
# 匹配id列包含nov:k_的行,将对应id值替换为k df.loc[df['id'].str.contains('nov:k_', na=False), 'id'] = 'k'
完整可运行示例
import pandas as pd # 构造示例数据 df = pd.DataFrame({ 'id': ['4_french:k_15', '87_nov:k_82', '11_nov:k_10', '1_italian:k_11'], 'value': [10, 82, 10, 9] }) # 执行替换操作 df.loc[df['id'].str.contains('nov:k_', na=False), 'id'] = 'k' # 输出验证结果 print(df)
运行后输出结果和预期完全一致:
id value 0 4_french:k_15 10 1 k 82 2 k 10 3 1_italian:k_11 9
补充说明
添加na=False参数是为了避免id列存在空值时匹配逻辑报错,如果你的数据中id列无缺失值,可以省略该参数。
内容的提问来源于stack exchange,提问作者french_fries
相关产品推荐
相关产品推荐

