繁体   English   中英

如何替换 dataframe 列中的特定最后一个字符串

[英]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

我能错过什么。 我曾尝试使用其他问题的许多其他解决方案,但无法弄清楚。

尝试regexdf.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM