Pandas 데이터 프레임을 쿼리하는 방법
SQL과 유사한 Python 함수에 대한 데이터 과학자의 관점.
By 매튜 프르 지 빌라, Favour Delivery의 수석 데이터 과학자
님이 촬영 한 사진 브루스 홍 on Unsplash [1].
차례
- 개요
- 여러 조건
- 여러 특정 열 병합
- 요약
- 참고자료
개요
데이터 엔지니어/데이터 분석가에서 전환하거나 보다 효율적인 데이터 과학자가 되고 싶은 경우 데이터 프레임을 쿼리하는 것은 원하는 특정 행을 반환하는 매우 유용한 방법이 될 수 있습니다. 적절하게 이름이 지정된 pandas에 대한 특정 쿼리 함수가 있다는 점에 유의하는 것이 중요합니다. query
. 그러나 대신 데이터 쿼리, 필터링 및 병합을 모방할 수 있는 다른 방법에 대해 논의하겠습니다. 데이터에 대해 묻는 일반적인 시나리오나 질문을 제시할 것이며, SQL 대신 Python을 사용하여 수행할 것입니다. 아래 단락에서는 Python 프로그래밍 언어를 사용하여 pandas 데이터프레임의 행을 쿼리하는 몇 가지 간단한 방법을 간략히 설명하겠습니다.
여러 조건
샘플 데이터. 작성자 [2]의 스크린샷.
데이터 과학자 또는 데이터 분석가로서 우리는 특정 데이터 행을 반환하려고 합니다. 이러한 시나리오 중 하나는 동일한 코드 줄에 여러 조건을 적용하려는 경우입니다. 내 예를 표시하기 위해 이름과 성, 각각의 성별 및 생년월일에 대한 가짜 샘플 데이터를 만들었습니다. 이 데이터는 스크린샷 위에 표시됩니다.
여러 조건 예제는 SQL을 사용할 때와 마찬가지로 기본적으로 특정 질문에 답합니다. 문제는 우리 데이터의 몇 퍼센트가 남성인지입니다. OR 2010년부터 2021년 사이에 태어난 사람.
다음은 해당 질문을 해결할 코드입니다(이 질문에 대답하는 방법은 몇 가지가 있지만 여기에는 구체적인 방법이 나와 있습니다.):
print(“Percent of data who are Males OR were born between 2010 and 2021:”, 100*round(df[(df[‘Gender’] == ‘M’) | (df[‘Birthdate’] >= ‘2010–01–01’) & (df[‘Birthdate’] <= ‘2021–01–01’)][‘Gender’].count()/df.shape [0],4), “%”)
이 코드를 더 잘 시각화하기 위해 출력/결과와 함께 위와 동일한 코드의 스크린샷도 포함했습니다. 전체 행에서 행의 비율이나 비율을 가져오는 대신 이러한 조건을 적용하여 실제 행을 반환할 수도 있습니다.
조건 코드. 작성자의 스크린샷 [3].
우리가 수행한 명령의 순서는 다음과 같습니다.
- Male이 포함된 행 반환
Gender
- 포함시키다 OR 기능
|
- 다음 행을 반환합니다.
Birthdate
> 2010 및 2021 - 모두 합친 다음 총 행 수로 나눕니다.
보시다시피 이 코드는 SQL에서 볼 수 있는 코드와 유사합니다. 저는 개인적으로 pandas가 더 쉽다고 생각합니다. 왜냐하면 코드가 더 적고 위아래로 스크롤할 필요 없이 한 곳에서 모든 코드를 시각적으로 볼 수 있기 때문입니다(하지만 이 형식은 단지 내가 선호하는 것뿐이에요).
여러 특정 열 병합
병합된 데이터프레임 결과. 작성자의 스크린샷 [4].
우리는 다른 튜토리얼에서 데이터프레임을 병합하는 방법을 보았기 때문에 실제로는 본 적이 없는 여러 특정 열을 병합하는 독특한 접근 방식을 추가하고 싶었습니다. 이 시나리오에서는 두 개의 필드가 공유되는 두 개의 데이터 프레임을 결합하려고 합니다. 열이 더 많으면 이 방법이 훨씬 더 유용할 수 있다는 것을 알 수 있습니다.
첫 번째 데이터프레임인 df가 있고 두 번째 데이터프레임인 df2에 열을 병합합니다. 예상된 결과를 달성하기 위한 코드는 다음과 같습니다.
merged_df = df.merge(df2, how=’inner’, left_on=cols, right_on=cols )
이 병합과 코드를 더 잘 시각화하기 위해 아래 스크린샷을 제시했습니다. 아래에서 두 번째 데이터프레임이 어떻게 보이는지 확인하세요. First
및 Last
이름은 첫 번째 데이터프레임과 동일하지만 새 열이 있습니다. Numeric
. 그런 다음 병합하려는 특정 열을 가져오고 열을 반환합니다. Gender
, Birthdate
, 그리고 새로운 Numeric
칼럼도 그렇고. 열은 다음과 같은 이름의 열 목록입니다. cols
.
데이터프레임 병합. 작성자의 스크린샷 [5].
보시다시피, 데이터프레임을 병합하는 이 방법은 SQL 쿼리에서 얻을 수 있는 것과 동일한 결과를 얻을 수 있는 간단한 방법입니다.
요약
이 자습서에서는 SQL에서 수행하지만 대신 Python의 Pandas 데이터 프레임을 사용하여 수행하는 두 가지 일반적인 질문 또는 쿼리를 확인했습니다.
요약하자면, 우리가 작업한 두 가지 시나리오는 다음과 같습니다.
- 여러 조건에서 전체 데이터세트 중 행의 비율 반환
- 여러 특정 열을 병합하여 새 열이 포함된 최종 데이터 프레임 반환
내 기사가 흥미롭고 유용했기를 바랍니다. 이러한 방법에 동의하거나 동의하지 않는 경우 아래에 자유롭게 의견을 남겨주세요. 그 이유는 무엇? 이것들은 확실히 더 명확해질 수 있지만, SQL 대신 Pandas와 Python을 사용할 수 있는 몇 가지 방법에 대해 밝힐 수 있었으면 좋겠습니다. 읽어 주셔서 감사합니다!
제 프로필을 편하게 봐주세요, 매트 프지빌라, 기타 기사를 확인하고 LinkedIn을 통해 저에게 연락해 주세요.
나는 이 회사들과 관련이 없습니다.
참고자료
[1] 사진 제공 브루스 홍 on Unsplash(2018)
[2] M. Przybyla, 샘플 데이터 스크린샷, (2021)
[3] M. Przybyla, 조건 코드 스크린샷, (2021)
[4] M. Przybyla, 병합된 데이터 프레임 결과 스크린샷, (2021)
[5] M. Przybyla, 데이터 프레임 병합 스크린샷, (2021)
바이오 : 매튜 프르 지 빌라 Favor Delivery의 선임 데이터 과학자이자 특히 데이터 과학 분야의 프리랜서 기술 작가입니다.
실물. 허가를 받아 다시 게시했습니다.
관련 :
지난 30 일 동안의 주요 기사 | |||||
---|---|---|---|---|---|
|
|
출처: https://www.kdnuggets.com/2021/08/query-pandas-dataframe.html