2017-09-29 5 views
0

를 사용하여 조회 :팬더 : 수직 두 개의 열이 다음과 같은 dataframes을 감안할 때 두 개의 데이터 프레임

DF1 :

ID A   B   
0 0 138.610513 34.860445 
2 2 139.307536 34.919052  

DF2 :

ID A   B   CAT 
0 0 138.610513 34.860445 a 
1 1 138.523152 34.807862 b 
2 2 139.307536 34.919052 c 
3 3 138.620263 34.883671 b 

를 내가의 값을 조회 할 수있는 방법 CAT을 입력하고 df1에 새 열을 추가 하시겠습니까?

나는이 시도했다 :

df1['CAT']=df1[['A'],['B']].map(df2[['A'],['B']]) 

하지만 얻을 :

TypeError: unhashable type: 'list' 

예상 출력 :

DF1 :

이 그냥 테스트 케이스입니다
ID A   B   CAT 
0 0 138.610513 34.860445 a 
2 2 139.307536 34.919052 c 

. 내 진짜 문제는 일관성이 없기 때문에 ID를 참조로 사용할 수 없습니다.

답변

1

merge을 사용하십시오. id도 매핑 된 것 같습니다. 그렇지 않으면

In [4820]: df1.merge(df2) 
Out[4820]: 
    ID   A   B CAT 
0 0 138.610513 34.860445 a 
1 2 139.307536 34.919052 c 

,`df2` 내가 필요하지 않은 열 무리가 있습니다 어떤 경우 df2

In [4825]: df1.merge(df2[['A', 'B', 'CAT']], on=['A', 'B']) 
Out[4825]: 
    ID   A   B CAT 
0 0 138.610513 34.860445 a 
1 2 139.307536 34.919052 c 
+0

에 필요한 열을 선택 선택적으로 on에 키를 지정하고? '고양이'만 있으면 돼? 나는 실제 사건에서 ID가 다르다고 지정했다. – FaCoffee

관련 문제