데이터 프레임의 행 값을 다른 데이터 프레임의 여러 행과 비교하는 방법 (계산 포함)

아소 자이

제목을 써서 영어가 나빠서 죄송합니다. 내가하고 싶은 것은 df다른 데이터 프레임과 비교 하여 위치를 결정하는 것 df2입니다. df일정 기간 동안 경도와 위도의 변화를 보여주는 데이터 프레임입니다. 40,000 개 이상의 행이있는 데이터 프레임입니다.

    df=
                        Longitude Latitude     
        Time               
        2020-01-01 01:00    100.0   20.0       
        2020-01-01 01:01    100.2   20.1       
        2020-01-01 01:02    300.1   30.0       
        2020-01-01 01:03    200.1   40.0     
        2020-01-01 01:04     50.0   50.0  

df2위치 데이터를 포함하는 데이터 프레임입니다. 약 30 행의 데이터 프레임입니다.

df2=
        Longitude Latitude   Location
    0        90.0   20.0     District A 
    1       210.0   60.0     District B

내가 어디에 있는지 결정하는 방법은 피타고라스 정리에 의해 수행됩니다. 의 각 데이터 행은의 df모든 행과 비교 df2하여 최단 거리가 내가있는 곳인 최단 거리를 찾습니다.

가지고 2020-01-01 01:01예를 들어.

먼저와 비교 df2 row 0하면 계산은 [(100.2-90.0)^2+(20.1-20.0)^2]^0.5입니다.

둘째,와 비교 df2 row 1하면 계산은 다음과 같습니다.[(100.2-210.0)^2+(20.1-60.0)^2]^0.5

위치와 사이의 거리가 위치와 District A사이의 거리보다 작기 District B때문에 위치는 2020-01-01 01:01입니다 District A. 예상되는 출력은 다음과 같습니다.

df=
                            Longitude Latitude  Location   
            Time               
            2020-01-01 01:00    100.0   20.0    District A   
            2020-01-01 01:01    100.2   20.1    District A   
            2020-01-01 01:02    300.1   30.0    District B   
            2020-01-01 01:03    200.1   40.0    District B 
            2020-01-01 01:04     50.0   50.0    District A

나의 접근 방식은 : 첫째 나는 만듭니다 내 예상 된 결과를 얻으려면 df['Loaction']의 전체 열을 NaN, 그럼 내가 계산을 할 것이며, 압축을 df2['Location']대체 할 수 NaN있는 값을 df['Loaction'].

그러나 내가 혼란스러운 것은 계산 결과를 얻는 방법입니다. 행을 df여러 행과 비교할 수있는 관련 팬더 함수 또는 NumPy 함수가 df2있습니까? 더 나은 접근 방법이 있습니까? 감사합니다!

기본 지식

작업이 필요하지 않기 때문에 시간 열을 무시하고 있습니다.

d = {'Longitude': [100.0,100.2,300.1,200.1,50.0], 'Latitude': [20.0 , 20.1,30.0,40.0, 50.0 ]}
df = pd.DataFrame(data=d)

d2 = {'Longitude':[90.0, 210.0], 'Latitude':[20.0, 60.0], 'Location':['District A', 'District B']}
df2 = pd.DataFrame(data=d2)

df의 각 행을 df2의 모든 행과 비교하기 때문에 람다 함수는 df에 행 단위로 적용될 수 있습니다. 일대일 매핑이 아닙니다.

그래서 처음에는 최소 거리를 찾은 다음 df2에서 '위치'값을 가져 오려고합니다. 솔루션을 단순화하기 위해 거리 계산에서 sqrt 값을 취하는 것을 피했습니다. 최소값 만 필요하므로 어쨌든 중요하지 않습니다.

df.apply(lambda x: df2['Location'][(x[0] - df2['Longitude'])**2 + (x[1] - df2['Latitude'])**2 == min((x[0] - df2['Longitude'])**2 + (x[1] - df2['Latitude'])**2)].iloc[0], axis=1)

그러면 다음과 같은 출력이 생성됩니다.

df.apply(lambda x: df2['Location'][(x[0] - df2['Longitude'])**2 + (x[1] - df2['Latitude'])**2 == min((x[0] - df2['Longitude'])**2 + (x[1] - df2['Latitude'])**2)].iloc[0], axis=1)
0    District A
1    District A
2    District B
3    District B
4    District A
dtype: object

마지막 열을 df에 추가하면 다음과 같습니다.

>>> df['Location'] = df.apply(lambda x: df2['Location'][(x[0] - df2['Longitude'])**2 + (x[1] - df2['Latitude'])**2 == min((x[0] - df2['Longitude'])**2 + (x[1] - df2['Latitude'])**2)].iloc[0], axis=1)
>>> 
>>> df
   Longitude  Latitude    Location
0      100.0      20.0  District A
1      100.2      20.1  District A
2      300.1      30.0  District B
3      200.1      40.0  District B
4       50.0      50.0  District A

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

데이터 프레임의 행 값이 하위 문자열이거나 다른 데이터 프레임의 행 값에 포함 된 것을 기반으로 두 데이터 프레임을 결합하는 방법은 무엇입니까?

분류에서Dev

R의 데이터 프레임에서 조합을 포함하는 행 계산

분류에서Dev

다른 데이터 프레임의 여러 행에서 조건부 데이터 프레임의 행에 대한 일치 항목을 찾는 방법

분류에서Dev

id를 여러 번 포함하는 행과 데이터 프레임을 병합 할 때 값의 합계를 분할합니다.

분류에서Dev

다른 데이터 프레임을 사용하여 데이터 프레임의 해당 행 값 찾기

분류에서Dev

데이터 프레임 열의 값을 다른 데이터 프레임의 올바른 행과 일치시키는 방법은 무엇입니까?

분류에서Dev

행 값을 다른 팬더 데이터 프레임의 그룹 값 합계와 비교하는 방법은 무엇입니까?

분류에서Dev

두 개의 서로 다른 데이터 프레임에서 두 행을 비교하는 방법 Pandas

분류에서Dev

다른 데이터 프레임의 행 번호를 사용하여 기존 데이터 프레임에서 새 pandas 데이터 프레임을 만듭니다.

분류에서Dev

다른 연산자를 사용하여 여러 열에 걸쳐 데이터 프레임의 행 집계

분류에서Dev

파이썬에서 데이터 프레임의 행을 비교하는 방법

분류에서Dev

다른 데이터 프레임의 행 값을 기반으로 한 데이터 프레임의 합계 열

분류에서Dev

Pandas 데이터 프레임의 여러 행을 기반으로 계산 수행

분류에서Dev

데이터 프레임의 특정 행에 대해 계산을 수행하고 결과를 사용하여 추가 계산을 수행합니다.

분류에서Dev

Pandas는 동일한 타임 스탬프에서 여러 거래의 데이터 프레임에서 결과 데이터 프레임을 계산합니다.

분류에서Dev

r의 for 루프를 사용하여 다른 데이터 프레임의 행을 기반으로 여러 새 데이터 프레임을 만듭니다.

분류에서Dev

R에서 두 데이터 프레임의 행을 비교하는 방법

분류에서Dev

데이터 프레임의 첫 번째 행의 셀 값을 다른 행의 셀 값과 비교

분류에서Dev

(순수한 접근 방식) 포함 할 열에 대한 정보가 다른 데이터 프레임에서 오는 여러 열에 걸쳐 행 수 계산

분류에서Dev

다른 데이터 프레임의 행 이름 순서를 기반으로 한 데이터 프레임의 열 이름을 매핑하여 R에서 데이터 프레임을 정렬하는 방법은 무엇입니까?

분류에서Dev

데이터 프레임의 값을 다른 데이터 프레임의 마지막 열 / 행에 복사하는 방법

분류에서Dev

첫 번째 행의 문자열을 데이터 프레임의 다른 모든 행과 비교하고 R의 불일치 수를 계산하는 방법은 무엇입니까?

분류에서Dev

서로 다른 형식의 전화 번호를 포함하는 두 개의 데이터 프레임 열을 비교하여 데이터 프레임 필터링

분류에서Dev

데이터 프레임의 여러 행을 집계하여 나열

분류에서Dev

데이터 프레임을 한 번 통과하여 효율적으로 행을 계산하는 방법

분류에서Dev

R : 행이 다른 데이터 프레임에있는 값의 수를 계산하는 방법 (길이는 다름)

분류에서Dev

다른 데이터 프레임의 행에있는 다중 값을 사용하여 pandas 데이터 프레임의 조회 값

분류에서Dev

두 팬더 데이터 프레임의 행을 비교하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

다른 데이터 프레임에있는 행의 조건을 기반으로 한 데이터 프레임의 행 인덱스를 찾는 벡터화 방법

Related 관련 기사

  1. 1

    데이터 프레임의 행 값이 하위 문자열이거나 다른 데이터 프레임의 행 값에 포함 된 것을 기반으로 두 데이터 프레임을 결합하는 방법은 무엇입니까?

  2. 2

    R의 데이터 프레임에서 조합을 포함하는 행 계산

  3. 3

    다른 데이터 프레임의 여러 행에서 조건부 데이터 프레임의 행에 대한 일치 항목을 찾는 방법

  4. 4

    id를 여러 번 포함하는 행과 데이터 프레임을 병합 할 때 값의 합계를 분할합니다.

  5. 5

    다른 데이터 프레임을 사용하여 데이터 프레임의 해당 행 값 찾기

  6. 6

    데이터 프레임 열의 값을 다른 데이터 프레임의 올바른 행과 일치시키는 방법은 무엇입니까?

  7. 7

    행 값을 다른 팬더 데이터 프레임의 그룹 값 합계와 비교하는 방법은 무엇입니까?

  8. 8

    두 개의 서로 다른 데이터 프레임에서 두 행을 비교하는 방법 Pandas

  9. 9

    다른 데이터 프레임의 행 번호를 사용하여 기존 데이터 프레임에서 새 pandas 데이터 프레임을 만듭니다.

  10. 10

    다른 연산자를 사용하여 여러 열에 걸쳐 데이터 프레임의 행 집계

  11. 11

    파이썬에서 데이터 프레임의 행을 비교하는 방법

  12. 12

    다른 데이터 프레임의 행 값을 기반으로 한 데이터 프레임의 합계 열

  13. 13

    Pandas 데이터 프레임의 여러 행을 기반으로 계산 수행

  14. 14

    데이터 프레임의 특정 행에 대해 계산을 수행하고 결과를 사용하여 추가 계산을 수행합니다.

  15. 15

    Pandas는 동일한 타임 스탬프에서 여러 거래의 데이터 프레임에서 결과 데이터 프레임을 계산합니다.

  16. 16

    r의 for 루프를 사용하여 다른 데이터 프레임의 행을 기반으로 여러 새 데이터 프레임을 만듭니다.

  17. 17

    R에서 두 데이터 프레임의 행을 비교하는 방법

  18. 18

    데이터 프레임의 첫 번째 행의 셀 값을 다른 행의 셀 값과 비교

  19. 19

    (순수한 접근 방식) 포함 할 열에 대한 정보가 다른 데이터 프레임에서 오는 여러 열에 걸쳐 행 수 계산

  20. 20

    다른 데이터 프레임의 행 이름 순서를 기반으로 한 데이터 프레임의 열 이름을 매핑하여 R에서 데이터 프레임을 정렬하는 방법은 무엇입니까?

  21. 21

    데이터 프레임의 값을 다른 데이터 프레임의 마지막 열 / 행에 복사하는 방법

  22. 22

    첫 번째 행의 문자열을 데이터 프레임의 다른 모든 행과 비교하고 R의 불일치 수를 계산하는 방법은 무엇입니까?

  23. 23

    서로 다른 형식의 전화 번호를 포함하는 두 개의 데이터 프레임 열을 비교하여 데이터 프레임 필터링

  24. 24

    데이터 프레임의 여러 행을 집계하여 나열

  25. 25

    데이터 프레임을 한 번 통과하여 효율적으로 행을 계산하는 방법

  26. 26

    R : 행이 다른 데이터 프레임에있는 값의 수를 계산하는 방법 (길이는 다름)

  27. 27

    다른 데이터 프레임의 행에있는 다중 값을 사용하여 pandas 데이터 프레임의 조회 값

  28. 28

    두 팬더 데이터 프레임의 행을 비교하는 가장 빠른 방법은 무엇입니까?

  29. 29

    다른 데이터 프레임에있는 행의 조건을 기반으로 한 데이터 프레임의 행 인덱스를 찾는 벡터화 방법

뜨겁다태그

보관