基本上,我有两列不同的纬度和经度(在网格上)。我获取了一个新的坐标集的两个元素列表(可以是numpy数组),我想在添加之前检查它是否为重复项。
例如,我的数据:
df = pd.DataFrame([[4,8, 'wolf', 'Predator', 10],
[5,6,'cow', 'Prey', 10],
[8, 2, 'rabbit', 'Prey', 10],
[5, 3, 'rabbit', 'Prey', 10],
[3, 2, 'cow', 'Prey', 10],
[7, 5, 'rabbit', 'Prey', 10]],
columns = ['lat', 'long', 'name', 'kingdom', 'energy'])
newcoords1 = [4,4]
newcoords2 = [7,5]
是否有可能编写一个if
语句,告诉我是否已经存在具有该纬度和经度的行。伪代码如下:
if newcoords1 in df['lat', 'long']:
print('yes! ' + str(newcoords1))
在这个例子中,
newcoords1
应该是 false
,而且 newcoords2
应该是 true
。另外注意事项:
(newcoords1[0] in df['lat']) & (newcoords1[1] in df['long'])
无法正常工作,因为它会独立地检查它们,但我需要知道是否在一行中出现了这种组合。提前感谢你!
df[(df[['lat','long']].values == newcoords2).all(axis=1)]
。如果newcoords是值对的DataFrame或数组,并且我想避免使用大型Python for循环,我该如何应用它? - Marses