检查两个numpy数组之间是否相等

2024-09-30 18:25:18 发布

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

我希望检查一个数据帧列中的类别是否与另一个数据帧列中的类别匹配,即拼写等方面是否不匹配

我现在有两个数组,表示感兴趣的列中的所有唯一值,我想返回第一个较小数组中的任何值,但不在第二个较大数组中的任何值,因此,我可以缩小可能需要调整/重新拼写等的类别。我认为我应该使用for循环来评估每个数组,但我正在努力实现。下面的示例代码,谢谢:

borough_pm25 = pm25['Borough_x'].unique()
borough_pm25
array(['Barnet', 'Camden', 'Wandsworth', 'Hounslow', 'Southwark',
       'Westminster', 'Kensington & Chelsea', 'Tower Hamlets',
       'Islington', 'Kingston', 'Barking & Dagenham', 'Waltham Forest',
       'Haringey', 'Lambeth', 'Enfield', 'Greenwich', 'Redbridge',
       'Newham', 'City of London', 'Hackney', 'Richmond', 'Ealing',
       'Hammersmith & Fulham', 'Lewisham', 'Sutton', 'Havering', 'Bexley',
       'Bromley'], dtype=object)

borough_map = map_df['NAME'].unique()
borough_map
array(['Kingston upon Thames', 'Croydon', 'Bromley', 'Hounslow', 'Ealing',
       'Havering', 'Hillingdon', 'Harrow', 'Brent', 'Barnet', 'Lambeth',
       'Southwark', 'Lewisham', 'Greenwich', 'Bexley', 'Enfield',
       'Waltham Forest', 'Redbridge', 'Sutton', 'Richmond upon Thames',
       'Merton', 'Wandsworth', 'Hammersmith and Fulham',
       'Kensington and Chelsea', 'Westminster', 'Camden', 'Tower Hamlets',
       'Islington', 'Hackney', 'Haringey', 'Newham',
       'Barking and Dagenham', 'City of London'], dtype=object)

Tags: and数据map数组类别arrayuniqueborough
1条回答
网友
1楼 · 发布于 2024-09-30 18:25:18

您可以使用set操作

import numpy as np
a=np.array(['Barnet', 'Camden', 'Wandsworth', 'Hounslow', 'Southwark',
       'Westminster', 'Kensington & Chelsea', 'Tower Hamlets',
       'Islington', 'Kingston', 'Barking & Dagenham', 'Waltham Forest',
       'Haringey', 'Lambeth', 'Enfield', 'Greenwich', 'Redbridge',
       'Newham', 'City of London', 'Hackney', 'Richmond', 'Ealing',
       'Hammersmith & Fulham', 'Lewisham', 'Sutton', 'Havering', 'Bexley',
       'Bromley'])
b=np.array(['Kingston upon Thames', 'Croydon', 'Bromley', 'Hounslow', 'Ealing',
       'Havering', 'Hillingdon', 'Harrow', 'Brent', 'Barnet', 'Lambeth',
       'Southwark', 'Lewisham', 'Greenwich', 'Bexley', 'Enfield',
       'Waltham Forest', 'Redbridge', 'Sutton', 'Richmond upon Thames',
       'Merton', 'Wandsworth', 'Hammersmith and Fulham',
       'Kensington and Chelsea', 'Westminster', 'Camden', 'Tower Hamlets',
       'Islington', 'Hackney', 'Haringey', 'Newham',
       'Barking and Dagenham', 'City of London'])

print(set(a)-set(b)) #(set A – set B) will be the elements present in set A but not in B
print(set(b)-set(a)) #(set B – set A) will be the elements present in set B but not in set A
print(set(a)-set(b)|set(b)-set(a))

{'Barking & Dagenham',
 'Hammersmith & Fulham',
 'Kensington & Chelsea',
 'Kingston',
 'Richmond'}  #set(a)-set(b)

{'Barking and Dagenham',
 'Brent',
 'Croydon',
 'Hammersmith and Fulham',
 'Harrow',
 'Hillingdon',
 'Kensington and Chelsea',
 'Kingston upon Thames',
 'Merton',
 'Richmond upon Thames'}  #set(b)-set(a)

{'Barking & Dagenham',
 'Barking and Dagenham',
 'Brent',
 'Croydon',
 'Hammersmith & Fulham',
 'Hammersmith and Fulham',
 'Harrow',
 'Hillingdon',
 'Kensington & Chelsea',
 'Kensington and Chelsea',
 'Kingston',
 'Kingston upon Thames',
 'Merton',
 'Richmond',
 'Richmond upon Thames'}

相关问题 更多 >