gpt4 book ai didi

python - 检查列表中的拆分文本成员身份后如何从数据框中删除行?

转载 作者:太空宇宙 更新时间:2023-11-03 23:56:57 25 4
gpt4 key购买 nike

这是我拥有的数据框的头部:

london.head()

Location Borough Post town
0 Abbey Wood Bexley, Greenwich LONDON
1 Acton Ealing, Hammersmith and Fulham LONDON
2 Addington Croydon CROYDON
3 Addiscombe Croydon CROYDON
4 Albany Park Bexley BEXLEY, SIDCUP

这是伦敦地区的列表,从维基百科中抓取: https://en.wikipedia.org/wiki/List_of_areas_of_London

行政区以逗号分隔,一些地点位于两个行政区。

我有一个东伦敦的行政区列表,我想以此来过滤数据框。

east_lon = ['Tower Hamlets', 'Newham', 'Waltham Forest', 'Barking and Dagenham', 'Redbridge', 'Havering', 'Hackney']

我已尝试使用此嵌套 for 循环来执行此操作,该循环检查列表中单个自治市镇或拆分后的自治市镇之一的成员资格。

for index, row in london.iterrows():
for borough in row['Borough'].split():
if borough or (borough + ',') not in east_lon:
london.drop(index, inplace=True)

我收到的错误是

[0] not found in axis'

我做错了什么?有没有更合适的写法?

最佳答案

想法是将值与 isdisjoint 进行比较, 最后用于反转掩码使用 ~:

east_lon = ['Bexley', 'Ealing', 'Waltham Forest']

s = set(east_lon)
mask = df['Borough'].apply(lambda x: set(x.split(', ')).isdisjoint(s))

df = df[~mask]
print (df)
Location Borough Post town
0 Abbey Wood Bexley, Greenwich LONDON
1 Acton Ealing, Hammersmith and Fulham LONDON
4 Albany Park Bexley BEXLEY, SIDCUP

关于python - 检查列表中的拆分文本成员身份后如何从数据框中删除行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57347532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com