python - 如何有条件地替换 pandas 数据框列中的子字符串?

标签 python pandas replace

我有一系列字符串(时间戳),我想有条件地替换这些字符串中的子字符串: - 如果有“+”字符,我想用“-”替换它 - 或者相反,如果有“-”字符,我想用“+”替换它

我显然不能无条件地简单地使用replace(),否则最终所有+ & - 都会转换为单个+字符。

mySeries = mySeries.str.replace('+','-', regex=False)
mySeries = mySeries.str.replace('-','+', regex=False)

请问这个符号反转应该如何操作?

我预先感谢您的帮助。 祝你有美好的一天,

最好的,

皮埃尔

最佳答案

您可以将正则表达式与接收匹配对象的 lambda 函数结合使用:

0    qqq--++www++
1      1234+5678-
dtype: object

s.str.replace(pat=r"\+|-", repl= lambda mo: "+" if mo.group()=="-" else "-", regex=True)

0    qqq++--www--
1      1234-5678+
dtype: object

关于python - 如何有条件地替换 pandas 数据框列中的子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59508962/

相关文章:

python - 将 pandas 中的对象序列转换为时间序列

python - 根据行数切片 Pandas Dataframe

javascript - css style 替换内联一个样式名称

python - 为什么我们在这里需要字节顺序?

python - glGenTextures 中的 pyopengl 错误

python - 使用 Python 计算多边形形状文件中的点数

Python Pandas Dataframe,在跳过重叠行的同时合并 df 行

c# - 在 C# 中处理大文件

php - 使用多个分隔符拆分字符串

python - 如何按前缀字母顺序和后缀数字顺序对 Python 字符串进行排序?