如何使用正则表达式和条件替换熊猫列中的值

诺德

我试图使用正则表达式替换熊猫列(数据框)中的某些值,但是我想基于另一列中的值应用正则表达式。

一个基本的例子;

index  col1  col2
1      yes   foobar
2      yes   foo
3      no    foobar

使用以下内容;

df.loc[df['col1'] == 'yes', 'col2'].replace({r'(fo)o(?!bar)' :r'\1'}, inplace=True, regex=True)

我期望得到以下结果;

index  col1  col2
1      yes   foobar
2      yes   fo
3      no    foobar

但是它似乎不起作用?它不会引发任何错误或settingwithcopy警告,它什么也不做。有替代方法吗?

耶斯列尔

为了避免链接分配,请分配并删除inplace=True

mask = df['col1'] == 'yes'
df.loc[mask, 'col2'] = df.loc[mask, 'col2'].replace({r'(fo)o(?!bar)' :r'\1'}, regex=True)

print (df)
  col1    col2
1  yes  foobar
2  yes      fo
3   no  foobar

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫使用正则表达式替换值

熊猫:使用正则表达式更新条件列

在熊猫中使用正则表达式仅替换特定列上的列值

在熊猫数据框中使用正则表达式替换列值

如何使用正则表达式设置多个条件来检测熊猫中的模式

如何在NiFi中使用正则表达式查找和替换值?

使用正则表达式有效地将熊猫中一列的值替换为另一列中的值?

如何使用正则表达式将多个序列替换为列表中的值?

如何使用找到的表达式和正则表达式替换文本?

熊猫中的严格正则表达式替换

使用正则表达式和搜索条件比较两个表中的列

熊猫 - 用正则表达式条件列引用

如何使用正则表达式搜索键和值并使用 jq 用新值替换值

如何正则表达式匹配和正则表达式替换php中的字符串

使用正则表达式进行条件替换

如何使用正则表达式从字符串中获取变量和值

正则表达式中的多个条件 - 如何用破折号替换冒号和空格

如何验证此正则表达式和函数以验证熊猫列值模式的正确性?

如何在熊猫替换功能中使用正则表达式捕获组

如何在熊猫系列中使用选择性正则表达式执行替换?

如何在熊猫中使用正则表达式替换多个整数值

熊猫和正则表达式

正则表达式替换值

在PowerShell中替换正则表达式值

使用正则表达式匹配替换索引值

使用正则表达式进行DART条件查找和替换

使用熊猫基于正则表达式表达式进行Substr替换

如何在熊猫系列中使用字典和正则表达式转换字符串列值

Python中的正则表达式和替换