我正在尝试在数据框中替换法语中的一些地址。我正在使用一个列表,正则表达式和一个列表。
def adresses(df):
liste_adresses = ['allée', 'Allée', 'rue', 'Rue', 'avenue', 'Avenue', 'av', 'AV', 'boulevard', 'Boulevard', 'bd', 'Bd', 'carreau', 'Carreau', 'carrefour', 'Carrefour', 'place', 'Place', 'voie', 'Voie', 'villa', 'Villa', 'route', 'Route', 'quai', 'Quai']
for i in liste_adresses:
df['C'] = df['C'].str.replace(r'[0-9]+(,|\s+)i\s+\w+\s+(\w+)?(\s+)?(\w+)?(\s+)?([0-9]{5})?(\s+)?\w+?([0-9]{5})?','<address>')
return df
我的数据框:
A B C
French house I live in 15 rue Louis Philippe 75001 Neuilly
English house my address: 101-102 bd Charles de Gaulle 75001 Paris
French apartment my name is Liam
French house Hello George!
English apartment This is wrong: 4, rue Ledion Paris 75014 and I'm not happy with it
在我的输出上,什么都没有发生。
好的输出:
A B C
French house I live in <address>
English house my address: <address>
French apartment my name is Liam
French house Hello George!
English apartment This is wrong: <address> and I'm not happy with it
答案 0 :(得分:3)
以下解决方案可能不适用于特定情况。因为地址的末尾是邮政编码或您不知道的城市,所以我认为一种方法可能是寻找:
<div id="squares">
<div id="square1">
</div>
<div id="square2">
</div>
<div id="square3">
</div>
</div>
<button id="button">Click me</button>
的字符串:所有地址都以数字开头'[0-9]+'
:例如捕获(.*)
-102
的{{1}}中的任何单词liste_adresses
'|'.join(liste_adresses)
:这里我假设如果邮政编码后有点或新行,则地址已结束,因此请匹配0到2个字符,但不匹配)点或新行[0-9]{5}
,然后是一个大写字母([^\.|\n]{0,2}[A-Z][a-z]*)*
,然后是任何小写字母[^\.|\n]{0,2}
,直到单词末尾,[A-Z]
结尾的多余字符将捕获城市由两个词组成,例如Saint-Denis。在全球范围内,这样做:
[a-z]*