首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在大熊猫dataframe (python 3)列中,我需要将"PO BOX“、"P O Box”或"POBOX“等的所有实例标准化为"BOX”。

在大熊猫dataframe (python 3)列中,我需要将"PO BOX“、"P O Box”或"POBOX“等的所有实例标准化为"BOX”。
EN

Stack Overflow用户
提问于 2019-06-06 23:34:39
回答 1查看 68关注 0票数 1

我有一个大约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地址 13943 PO方框1234 1 14738号蓝铃路510号 拐角处大道5 27455 5887号 6 27457 200纽黑文博士10号套房 9 1595554 POBOX 908 10 1595971 101号西7街 14 1597234 P O方框616

我想让它看起来像:

代码语言:javascript
复制
  id         address 

13943方框1234

1 14738号蓝铃路510号

拐角处大道5 27455 5887号

6 27457 200纽黑文博士10号套房

9 1595554方框908

10 1595971 101号西7街

14 1597234方框616

但我得到的是:

代码语言:javascript
复制
   id    address

0 13943无

1 14738无

5 27455无

6 27457无

9 1595554无

10 1595971无

14 1597234无

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-07 04:14:59

我只是要使用一个pd.Series,但是它和一个dataframe列是一样的。

代码语言:javascript
复制
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"
]

创造熊猫系列。

代码语言:javascript
复制
s = pd.Series(address, name='Addy')

使用替换和regex等于True。

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56486295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档