두 데이터프레임의 latitude, longitude 값을 비교하여 차가 0.0005 인 것을 표시하고 싶다.

조회수 850회

2개의 df가 있는데 col명은 둘다 latitude, longitude이고 df1은 row가 1만개 df2(tr)는 15개입니다.

제가 하고싶은것은 df1의 값을 df2(tr)와 비교했을때 오차가 0.0005이하면 df1에 새 컬럼을 만들어서 1로, 아닌것들은 0으로 라벨링하는 건데요.

이걸... 코드로 어떻게짜야할지 막막합니다 ㅠㅠㅠㅠ `감도 안잡혀요 ㅠㅠㅠㅠㅠㅠㅠㅠ

혹시나 알 것 같으시다면 아이디어(?)라도 부탁드립니다.

질문 수정했습니다!!

//python3
inv = pd.read_csv("20180723.csv") #라벨링 하고싶은 데이터
tr = pd.read_csv("2018_0723.csv") #비교할 데이터
df1 = inv[['longitude', 'latitude']]
df1.head()
tr.head()

이미지 이미지

두개의 dataframe을 비교하여서 같은 값(중복값?)을 찾는것은 알고있는데
두개의 데이터프레임의 값의 차이가 0.0005 이내인 것은 어떤식으로 찾아야할지 모르겠습니다!!
같은 인덱스번호를 가진 행끼리 비교하는 것이 아니라
tr의 1행과 df1의 1행 비교, tr의1행과 df1의 2행 비교, ... tr의 15행과 df1의 10000행과 비교
하고 싶습니다!!

for i in tr.iterrows():
    for j in df1.iterrows():
        df1['HABs'] = ['1' if ((j - i) <= 0.0005 or (i-j) <= 0.0005) else '0']

이런 느낌일까해서 찾아보았는데 이 방법은 튜플의 뺄셈 연산이 안되어서 문법에 맞지않았습니다

  • 데이터 예시 정도는 올려주시는게.. 초보자 2021.11.25 16:18
  • 2개의 데이터 프레임이 있는데 두 df에 latitude와 longitude가 있다는 뜻인가요? 아니면 1개는 latitude, 다른 1개는 longtitude 라는 뜻인가요? 전자면 lait와 long을 각각 비교해서 둘다 오차가 0.0005이하인걸 통과해야하나요? 질문이 뭔지 모르겠습니다 BillTime 2021.11.25 16:45
  • lat, long 두 좌표를 비교한다고 해도, 각 위도 경도에 대해 두 개의 차가 발생해요. 0.0005 보다 작다는 것은, 위도의 차를 말하는 건가요 경도의 차를 말하는 건가요? 아니면, 두 차가 다 0.0005보다 작아야 하나요? 아니면 haversine 을 이용해서 지구상의 두 좌표의 거리를 구해서 그 값이 0.0005보다 작아야 하나요? nowp 2021.11.26 02:27

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)