[英]How to replace specific last string in a dataframe column
如果它是特定文本,我正在尝试替换 dataframe 列中的最后一个单词。 下面是我的代码
import pandas as pd
lst = ['Main Close', 'Jon cl', 'Boon lose', 'Saint Cls', 'Brook CL','Smith clo', 'Petes Cl', 'Klein Cl.', 'Chuks Close']
df = pd.DataFrame(lst, columns = ['address'])
replace_values = {'Cl$' : 'Close', 'lose$' : 'Close', 'close$' : 'Close', 'cl$' : 'Close', 'Cl.$' : 'Close', 'CL$' : 'Close', 'clo$' : 'Close', 'CI$' : 'Close'}
for key, value in replace_values.items():
df.address = df['address'].str.replace(key, value)
我使用字典来存储搜索值和替换值。 我遇到了问题,因为它与特定文本不匹配,即
Main Close修改为Main CClose但应忽略
Pete Cl被修改为Petes CClose但它应该是 Petes Close
我能错过什么。 我曾尝试使用其他问题的许多其他解决方案,但无法弄清楚。
尝试regex
和df.apply
>>> import re
def f1(s):
p = re.compile('^(\S+)\s+(cl|cl.|Cl|Cl.|CL|Cls|clo|lose|Close)$')
return p.sub('\\1 Close', s)
>>> df['address'] = df['address'].apply(f1)
>>> print(df)
address
0 Main Close
1 Jon Close
2 Boon Close
3 Saint Close
4 Brook Close
5 Smith Close
6 Petes Close
7 Klein Close
8 Chuks Close
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.