본문 바로가기
파이썬

파이썬 Pandas DataFrame의 여러 값 중 하나와 일치하는 행을 효율적으로 선택

by º기록 2020. 12. 19.
반응형

다음과 같이 Pandas DataFrame의 데이터가 제공됩니다.

Name     Amount
---------------
Alice       100
Bob          50
Charlie     200
Alice        30
Charlie      10

Name 이 컬렉션 {Alice, Bob} 의 여러 값 중 하나 인 모든 행을 선택하고 싶습니다.

Name     Amount
---------------
Alice       100
Bob          50
Alice        30

Pandas에서이를 수행하는 효율적인 방법은 무엇입니까?

내가 보는 옵션

다음과 같은 많은 문을 선택하고 병합합니다.

merge(df[df.name = specific_name] for specific_name in names) # something like this

일종의 조인 수행

여기서 성능 절충점은 무엇입니까? 한 솔루션이 다른 솔루션보다 나은 때는 언제입니까? 내가 놓친 솔루션은 무엇입니까?

위의 예는 문자열을 사용하지만 실제 작업은 수백만 행에 걸쳐 10-100 정수에 대한 일치를 사용하므로 빠른 NumPy 작업이 관련 될 수 있습니다.

 

해결 방법

 


In [11]: df['Name'].isin(['Alice', 'Bob'])
Out[11]: 
0     True
1     True
2    False
3     True
4    False
Name: Name, dtype: bool

In [12]: df[df.Name.isin(['Alice', 'Bob'])]
Out[12]: 
    Name  Amount
0  Alice     100
1    Bob      50
3  Alice      30

 

참조 페이지 https://stackoverflow.com/questions/22485375

 

 

반응형

댓글