기술 혁신이 앱 개발 부문을 어떻게 강화하고 있습니까? 1

Pandas 데이터 프레임을 쿼리하는 방법

소스 노드 : 1017694

Pandas 데이터 프레임을 쿼리하는 방법

SQL과 유사한 Python 함수에 대한 데이터 과학자의 관점.


By 매튜 프르 지 빌라, Favour Delivery의 수석 데이터 과학자



님이 촬영 한 사진 브루스 홍 on Unsplash [1].

차례

 
 

  1. 개요
  2. 여러 조건
  3. 여러 특정 열 병합
  4. 요약
  5. 참고자료

개요

 
 
데이터 엔지니어/데이터 분석가에서 전환하거나 보다 효율적인 데이터 과학자가 되고 싶은 경우 데이터 프레임을 쿼리하는 것은 원하는 특정 행을 반환하는 매우 유용한 방법이 될 수 있습니다. 적절하게 이름이 지정된 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. 그런 다음 병합하려는 특정 열을 가져오고 열을 반환합니다. GenderBirthdate, 그리고 새로운 Numeric 칼럼도 그렇고. 열은 다음과 같은 이름의 열 목록입니다. cols.



데이터프레임 병합. 작성자의 스크린샷 [5].

 

보시다시피, 데이터프레임을 병합하는 이 방법은 SQL 쿼리에서 얻을 수 있는 것과 동일한 결과를 얻을 수 있는 간단한 방법입니다.

요약

 
 
이 자습서에서는 SQL에서 수행하지만 대신 Python의 Pandas 데이터 프레임을 사용하여 수행하는 두 가지 일반적인 질문 또는 쿼리를 확인했습니다.

요약하자면, 우리가 작업한 두 가지 시나리오는 다음과 같습니다.

  1. 여러 조건에서 전체 데이터세트 중 행의 비율 반환
  2. 여러 특정 열을 병합하여 새 열이 포함된 최종 데이터 프레임 반환

내 기사가 흥미롭고 유용했기를 바랍니다. 이러한 방법에 동의하거나 동의하지 않는 경우 아래에 자유롭게 의견을 남겨주세요. 그 이유는 무엇? 이것들은 확실히 더 명확해질 수 있지만, 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의 선임 데이터 과학자이자 특히 데이터 과학 분야의 프리랜서 기술 작가입니다.

실물. 허가를 받아 다시 게시했습니다.

관련 :

출처: https://www.kdnuggets.com/2021/08/query-pandas-dataframe.html

타임 스탬프 :

더보기 너 겟츠