簡體   English   中英

熊貓:檢查行的值是否相似

[英]Pandas: Check if row has similar values

我正在使用熊貓生成地圖的疊加層並使用:

if ((df['latitude'] == new_latitude) & (df['longitude'] == new_longitude)).any():
   continue

確保我不會產生重復的分數。 但是我開始產生的點與已經產生的點相差0.001(經度,緯度或兩者)。 如何以與上述類似的方式防止這種情況?

您可以從整個序列中減去IIUC,然后僅過濾點:

thresh = 0.001
lat = df.loc[(df['latitude'] - new_latitude).abs() > thresh, 'latitude']
lon = df.loc[(df['longtitude'] - new_longtitude).abs() > thresh, 'longtitude']

這使用abs來獲取絕對值,以生成布爾掩碼並過濾掉所有重復的值和接近重復的值。

您可以將numpy.isclose函數與atol設置為您的精度:

import numpy as np
prec = 0.001
np.isclose(df['latitude'], new_latitude, atol=prec)

if ((np.isclose(df['latitude'], new_latitude, prec) & (np.isclose(df['longitude'], new_longitude, prec)).any():
   continue

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM