我有一个大约30个同义词的列表,这些同义词可以在地址中找到,以表示PO。我希望能够扫描一个地址,如果其中一个同义词在地址中,将其更改为简单框。
首先,我对Python很陌生。我是一个经验丰富的SAS程序员,试图学习Python。我试过使用带有.map()函数的字典(认为这类似于SAS格式),但没有成功。然后我尝试了如下的方法:df‘’address‘=df’‘address’.替换({‘PO BOX':'BOX','P BOX':'BOX',’POB‘,’邮箱‘:'BOX','P O BOX':'BOX','POB':'BOX'},inplace=True)
输入如下所示:(很抱歉格式化错误)
我想让它看起来像:
id address 13943方框1234
1 14738号蓝铃路510号
拐角处大道5 27455 5887号
6 27457 200纽黑文博士10号套房
9 1595554方框908
10 1595971 101号西7街
14 1597234方框616
但我得到的是:
id address0 13943无
1 14738无
5 27455无
6 27457无
9 1595554无
10 1595971无
14 1597234无
发布于 2019-06-07 04:14:59
我只是要使用一个pd.Series,但是它和一个dataframe列是一样的。
rep = {'PO BOX': 'BOX', 'P BOX': 'BOX', 'POSTBOX': 'BOX', 'P O BOX': 'BOX', 'POBOX':'BOX', 'POB': 'BOX'}
address = [
"13943 PO BOX 1234",
"14738 510 BLUE BELL RD",
"27455 5887 CORNERS AVENUE",
"27457 200 NEW HAVEN DR SUITE 10",
"1595554 POBOX 908",
"1595971 101 W 7TH STREET",
"1597234 P O BOX 616"
]创造熊猫系列。
s = pd.Series(address, name='Addy')使用替换和regex等于True。
s.replace(rep, regex=True)
0 13943 BOX 1234
1 14738 510 BLUE BELL RD
2 27455 5887 CORNERS AVENUE
3 27457 200 NEW HAVEN DR SUITE 10
4 1595554 BOX 908
5 1595971 101 W 7TH STREET
6 1597234 BOX 616
Name: Addy, dtype: objecthttps://stackoverflow.com/questions/56486295
复制相似问题