返回dataframe列的每行中包含的列表中的第一个单词

2024-10-06 15:20:23 发布

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

我有一个字符串列表,如何找到包含在数据帧列的每一行中的该列表的第一个字符串并将其添加到新列中?在

列表如下:

Place = ['Abule-Egba', 'Agege', 'Alapere', 'Alimosho', 
         'Ajah', 'Amuwo-Odofin', 'Apapa', 'Bariga', 'Badagry', 
         'Epe', 'Ejigbo', 'Gbagada', 'Iddo-Island', 'Idimu', 'Igando', 
         'Ijora', 'Ikeja', 'isherri','Lekki', 'Ojo'] 

以及包含9784行地址的dataframe列:

^{pr2}$

我正在尝试创建一个新列,如下所示:

                         1                                           2
0       Eleranigbe Eleranigbe Eleranigbe Ibeju Lekki L...          Lekki
1             Opebi street opebi street Opebi Ikeja Lagos          Ikeja
2                          VI Lagos VI Extension VI Lagos            VI
3               off afrika lane Lekki Phase 1 Lekki Lagos          Lekki
4           NEAR IGANDO B/STOP Igando Ikotun Igando Lagos          Igando
5       Tijani Salako off Bode Shodiya street Bucknor ...          Ikoyi
6       Fatade street, off Isheri/ Ijegun Rd, Kuduyeib...          Isheri

这是我的代码,但我得到一个错误;值错误:值的长度与索引的长度不匹配

s['where'] =''
de = []
for i in s['Address]:
    for j in Place:
        if j in i:
            de.append(j)

            break;

我认为我的代码是错误的,但我可以用我的一生来解决它。在


Tags: 字符串instreet列表错误placevioff
1条回答
网友
1楼 · 发布于 2024-10-06 15:20:23

我相信使用df.str.extract应该可以实现:

df['Places'] = df.iloc[:, 0].str.extract('(' + '|'.join(Place) + ')', expand=False)
df.head()
                                                   1  Places
0  Eleranigbe Eleranigbe Eleranigbe Ibeju Lekki L...   Lekki
1        Opebi street opebi street Opebi Ikeja Lagos   Ikeja
2                     VI Lagos VI Extension VI Lagos     NaN
3          off afrika lane Lekki Phase 1 Lekki Lagos   Lekki
4      NEAR IGANDO B/STOP Igando Ikotun Igando Lagos  Igando

相关问题 更多 >