在datafram的一列中显示extractall函数的结果

2024-10-01 13:41:45 发布

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

我试图在数据帧中添加一列新的数字,另一列中有一个数字列表。在“街道”一栏里,我不仅记下街道的名字,有时还记下楼房和公寓的编号。我想添加列并检查哪些行包含数字以及它们是哪些特定的数字。在

我在数据框中有一列是这样的:

street_name
===========
Maine 70 , 50
Oak 2/52
Seventh 2
Sixth

现在我的代码是:

^{pr2}$

现在我的输出是:

TypeError:('sequence item 1:预期str实例,找到float','occurred at index(0,1)'

我想收到一个专栏:

all_numbers:
============
70,50
2,52
2

street_name中出现的所有数字


Tags: 数据namestreet列表数字名字街道编号
2条回答

您可以使用str.find_all

In [11]: df.street_address.str.findall('\d+')
Out[11]:
0    [70, 50]
1     [2, 52]
2         [2]
3          []
Name: street_address, dtype: object

如果需要逗号分隔的字符串:

^{pr2}$

使用regex进行此操作:

import pandas as pd 
import re
df = pd.DataFrame({'street': ['Maine 70 , 50','Oak 2/52','Seventh 2','Sixth']})

def find_num(x):
    j = re.findall(r'[0-9]+', x)
    return ",".join(j)

df['all numbers'] = df['street'].apply(find_num)

print(df)

输出:

^{pr2}$

相关问题 更多 >