将逗号后的最后一个术语提取到新列中

2024-09-29 23:16:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据帧,基本上是2列9000行

CompanyName  |  CompanyAddress

地址在表格里

^{pr2}$

也就是说,在一个字符串(或数据类型'object')中,基本上有不同数量的逗号分隔项,我只想拉出后代码,即字段中最后一个逗号之后的项目

我尝试过Dot notation string manipulation建议(可能很糟糕):

df_address['CompanyAddress'] = df_address['CompanyAddress'].str.rsplit(', ') 

它只是把“[]”放在字段周围—我试图隔离任何拆分/分区字符串的最后一个组件时没有成功,maxsplit会引发错误。在

我有一个小的成功,跟随埃德丘姆斯的评论Pandas split Column into multiple columns by comma

pd.concat([df_address[['CompanyName']], df_address['CompanyAddress'].str.rsplit(', ', expand=True)], axis=1)

然而,在隔离邮政编码的同时,这只会创建多个列,邮政编码位于第3-6列。。。同样不好。在

感觉非常接近,请告诉我。在

    EmployerName    Address
0   FAUCET INN LIMITED  [Union, 88-90 George Street, London, W1U 8PA]
1   CITIBANK N.A    [Citigroup Centre,, Canary Wharf, Canada Squar...
2   AGENCY 2000 LIMITED     [Sovereign House, 15 Towcester Road, Old Strat...
3   Transform Trust     [Unit 11 Castlebridge Office Village, Kirtley ...
4   R & R.C.BOND (WHOLESALE) LIMITED    [One General Street, Pocklington Industrial Es...
5   MARKS & SPENCER FINANCIAL SERVICES PLC  [Marks & Spencer Financial, Services Kings Mea...

Tags: 数据字符串streetpandasdfaddress地址表格
3条回答

rsplit返回一个列表,请尝试rsplit(',')[0]以获取源行中的最后一个元素

只需rsplit将现有列分为两列-现有列和新列。或者两个新的,如果你想保持现有列不变。在

df['Address'], df['PostCode'] = df['Address'].str.rsplit(', ', 1).str

编辑:由于OP的Address列是一个包含1个字符串的列表,这里有一个具体的解决方案:

^{pr2}$

给定数据帧

df = pd.DataFrame({'Name': ['ABC'], 'Address': ['Line1, Line2, LineN, PostCode']})

    Address                         Name
0   Line1, Line2, LineN, PostCode   ABC

如果只需要post代码,可以使用rsplit提取它并将其重新分配给列地址。它会帮你省下一步。在

^{pr2}$

你得到了

^{3}$

编辑:给你一个数据帧,地址值在列表中

df = pd.DataFrame({'Name': ['FAUCET INN LIMITED'], 'Address': [['Union, 88-90 George Street, London, W1U 8PA']]})

    Address                                         Name
0   [Union, 88-90 George Street, London, W1U 8PA]   FAUCET INN LIMITED

您可以使用

df['Address'] = df['Address'].apply(lambda x: x[0].split(',')[-1])

你得到了

    Address     Name
0   W1U 8PA     FAUCET INN LIMITED

相关问题 更多 >

    热门问题