我有一个包含 30 个左右同义词的列表,可以在地址中找到这些同义词来表示邮政信箱。我希望能够扫描一个地址,如果地址中有这些同义词之一,请将其更改为简单的 BOX。
首先,我是Python的新手。 我是一个经验丰富的SAS程序员,试图学习Python。 我尝试使用带有 .map() 函数的字典(认为这将像 SAS 格式一样工作),但没有运气。 然后我尝试了类似的东西: df['address'] = df['address'].replace({'PO
BOX': 'BOX', 'P BOX': 'BOX', 'POSTBOX': 'BOX', 'P O BOX': 'BOX', 'POB': 'BOX'}, inplace=True)输入如下所示:(抱歉格式错误)
身份证地址
0 13943 邮政信箱 1234
1 14738 510 蓝钟路
5 27455 5887角大道
6 27457 200 纽黑文DR套房 10
9 1595554 POBOX 908
10 1595971 101 W 7TH STREET
14 1597234 邮政信箱 616
我希望它看起来像:
id address
0 13943 框 1234
1 14738 510 蓝钟路
5 27455 5887角大道
6 27457 200 纽黑文DR套房 10
9 1595554框 908
10 1595971 101 W 7TH STREET
14 1597234框 616
但我得到的是这个:
id address
0 13943 无
1 14738 无
5 27455 无
6 27457 无
9 1595554 无
10 1595971 无
14 1597234 无
我只是要使用pd。系列,但它与一个数据帧列相同。
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')
使用替换和正则表达式等于 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: object