regex 在 Dataframe 中使用正则表达式在每个“%”符号后添加逗号

mmvthczy  于 2022-12-05  发布在  其他
关注(0)|答案(3)|浏览(137)

如果我有这样一个值:
C:100% B:90% A:80%
我想在每个%后面添加逗号,因此输出如下:
C:100%,B:90%,A:80%
我已经试过了

data['Final'] = data['Final'].str.replace(r'(%)\n\b', r'\1,', regex=True)
nvbavucw

nvbavucw1#

可以使用Python中re模块的re.sub方法来实现这一点。

import re

# Your original string
string = "C:100% B:90% A:80%"

# Use regex to replace all occurrences of '%' with ',%'
string = re.sub("%", ",%", string)

# The resulting string will be: "C:100%, B:90%, A:80%"

如果要将此表达式应用于DataFrame中的列,可以使用apply方法将正则表达式替换应用于列中的每个值。例如:

import pandas as pd
import re

# Create a DataFrame with a column of strings
df = pd.DataFrame({"values": ["C:100% B:90% A:80%", "D:70% E:60% F:50%"]})

# Use the apply method to apply the regex substitution to each value in the column
df["values"] = df["values"].apply(lambda x: re.sub("% ", "%,", x))

这将导致DataFrame的值列中包含以下值:

0    C:100%,B:90%,A:80%
1    D:70%,E:60%,F:50%
u0sqgete

u0sqgete2#

您可以使用此选项:

df['final']= df['final'].str.replace(r'%\s*\b', r'%,', regex=True)

输出量:

print(df)

                final
0  C:100%,B:90%,A:80%
2w2cym1i

2w2cym1i3#

示例数据中没有换行符,因此可以编写只匹配一个空格或一个或多个空格字符\s+的模式

data = pd.DataFrame({"Final": ["C:100% B:90% A:80%"]})
data['Final'] = data['Final'].str.replace(r'(%) \b', r'\1,', regex=True)
print(data)

输出量

Final
0  C:100%,B:90%,A:80%

相关问题