제퍼넷 로고

Pandas vs SQL : 데이터 과학자가 각 도구를 사용해야하는 경우

시간

Pandas vs SQL : 데이터 과학자가 각 도구를 사용해야하는 경우

데이터 세트를 탐색하고 그 구조, 내용 및 관계를 이해하는 것은 모든 데이터 과학자에게 일상적이고 핵심적인 프로세스입니다. 이러한 분석을 수행하기위한 여러 도구가 존재하며, 두 가지 중요한 도구 인 SQL과 Pandas의 이점과 다른 접근 방식에 대해 자세히 알아 봅니다.


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

님이 촬영 한 사진 리겔 on Unsplash.

이 두 도구는 데이터 과학자뿐만 아니라 데이터 분석 및 비즈니스 인텔리전스와 같은 유사한 위치에있는 사람들에게도 중요합니다. 그렇다면 데이터 과학자는 언제 SQL을 통해 판다를 사용해야하며 그 반대의 경우도 마찬가지입니까? 어떤 상황에서는 SQL을 사용하는 것만으로도 벗어날 수 있으며, 다른 경우에는 특히 Jupyter Notebook 설정에서 연구에 집중하는 데이터 과학자에게 pandas를 훨씬 쉽게 사용할 수 있습니다. 아래에서는 SQL을 사용해야하는 경우와 pandas를 사용해야하는 경우에 대해 설명합니다. 이 두 도구 모두 특정 사용 사례가 있지만 기능이 겹치는 경우가 많으며 아래에서도 비교해 보겠습니다.

판다

님이 촬영 한 사진 칼렌 켐프 on Unsplash.

판다 Python 프로그래밍 언어로 된 오픈 소스 데이터 분석 도구입니다. Pandas의 이점은 일반적으로 SQL 쿼리에서 기본 데이터 세트가 이미있을 때 시작됩니다. 이 주요 차이점은 두 도구가 분리되어 있음을 의미 할 수 있습니다. 그러나 각 도구에서 동일한 기능을 여러 개 수행 할 수도 있습니다. 예를 들어 pandas의 기존 열에서 새 기능을 만들 수 있습니다. SQL보다 쉽고 빠릅니다.

pandas가 SQL이 할 수없는 일과 그 반대의 일을 비교하지 않는다는 점에 유의하는 것이 중요합니다. 저는 개인적 경험에서 데이터 과학 작업을 위해 더 효율적으로 또는 더 나은 기능을 수행 할 수있는 도구를 선택할 것입니다.

다음은 pandas를 사용하는 것이 SQL보다 더 유익하면서도 SQL과 동일한 기능을 갖는 경우입니다.

  • 기존 기능에서 계산 된 필드 만들기

더 복잡한 SQL 쿼리를 통합 할 때 다른 열의 값을 나누기 위해 종종 하위 쿼리도 통합합니다. Pandas에서는 다음과 같이 기능을 훨씬 쉽게 분할 할 수 있습니다.

df [ "new_column"] = df [ "first_column"] / df [ "second_column"] 

위의 코드는 두 개의 개별 열을 나누고 해당 값을 새 열에 할당하는 방법을 보여줍니다. 이 경우 전체 데이터 세트 또는 데이터 프레임에서 피쳐 생성을 수행합니다. 이 기능은 데이터 과학 프로세스의 기능 탐색 및 기능 엔지니어링 모두에서 사용할 수 있습니다.

  • 그룹화

또한 하위 쿼리와 관련하여 SQL에서 그룹화하는 것은 매우 복잡 할 수 있으며 시각적으로 압도적 일 수있는 코드 줄과 줄이 필요합니다. Pandas에서는 한 줄의 코드로 간단히 그룹화 할 수 있습니다. 테이블 쿼리에서 간단한 선택의 끝에있는 '그룹화 기준'이 아니라 여러 하위 쿼리가 관련된 항목입니다.

df.groupby (by = "first_column"). mean () 

이 결과는 첫 번째 열 데이터 프레임의 모든 열에 대해. 이 그룹화 기능을 사용하는 다른 많은 방법이 있으며, pandas 문서에 잘 설명되어 있습니다.

  • 데이터 유형 확인

SQL에서는 종종 유형을 캐스트해야하지만 때때로 pandas가 SQL에서 수평 출력을 스크롤하는 대신 수직 형식으로 데이터 유형을 레이아웃하는 방식을 보는 것이 조금 더 명확 할 수 있습니다. 당신은 기대할 수 있습니다 일부 int64, float64, datetime64 [ns] 및 object로 반환되는 데이터 유형의 예입니다.

df.dtypes 

이들은 모두 pandas와 SQL의 매우 간단한 기능이지만 SQL에서는 특히 까다 롭고 때로는 pandas 데이터 프레임에서 구현하기가 훨씬 쉽습니다. 이제 SQL이 어떤 성능을 더 잘 수행하는지 살펴 보겠습니다.

SQL

님이 촬영 한 사진 카스파르 카밀 루빈 on Unsplash.

SQL은 아마도 가장 많은 다른 위치에서 가장 많이 사용되는 언어 일 것입니다. 예를 들어 데이터 엔지니어는 SQL, Tableau 개발자 또는 제품 관리자를 사용할 수 있습니다. 데이터 과학자는 SQL을 자주 사용하는 경향이 있습니다. 일반적으로 모두 유사한 기능을 가지고 있으며 약간 다른 형식의 SQL 버전이 여러 개 있다는 점에 유의하는 것이 중요합니다.

다음은 pandas와 동일한 기능을 제공하면서 SQL을 사용하는 것이 pandas보다 더 유익한 경우입니다.

  • WHERE 절

SQL의이 절은 자주 사용되며 pandas에서도 수행 할 수 있습니다. 그러나 판다에서는 약간 더 어렵거나 덜 직관적입니다. 예를 들어, 중복 코드를 작성해야하는 반면, SQL에서는 단순히 WHERE.

테이블에서 ID 선택 WHERE id> 100 

팬더에서는 다음과 같습니다.

df [df [ "id"]> 100] [ "id"] 

예, 둘 다 간단하지만 SQL은 조금 더 직관적입니다.

  • 조인

Pandas에는 몇 가지 조인 방법이 있는데 이는 다소 부담 스러울 수있는 반면 SQL에서는 다음과 같은 간단한 조인을 수행 할 수 있습니다. 안의, 왼쪽, 권리.

SELECT one.column_A, two.column_B FROM first_table one INNER JOIN second_table two ON two.id = one.id 

이 코드에서 조인은 데이터 프레임을 병합해야하는 pandas에서보다 약간 읽기 쉬우 며 특히 두 개 이상의 데이터 프레임을 병합 할 때 pandas에서 매우 복잡 할 수 있습니다. SQL은 INNER 여부에 관계없이 동일한 쿼리에서 여러 조인을 수행 할 수 있습니다.

SQL이든 pandas이든 이러한 모든 예제는 최소한 데이터 과학 프로세스의 탐색 적 데이터 분석 부분은 물론 기능 엔지니어링 및 데이터베이스에 저장된 모델 결과 쿼리에서 사용할 수 있습니다.

요약

pandas와 SQL의 비교는 개인적인 선호에 가깝습니다. 그렇게 말하면 내 의견과 반대되는 느낌을받을 수 있습니다. 그러나 나는 그것이 판다와 SQL의 차이점뿐만 아니라 약간 다른 코딩 기술과 다른 언어를 사용하여 두 도구에서 똑같이 수행 할 수있는 작업을 여전히 밝힐 수 있기를 바랍니다.

요약하면 몇 가지 공유 함수에 대해 pandas를 SQL보다 사용하는 이점과 그 반대의 이점을 비교했습니다.

  •  기존 기능에서 계산 된 필드 만들기
  • 그룹화
  • 데이터 유형 확인
  • WHERE 절
  • 조인

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

관련 :

코인 스마트. 유로파 최고의 비트 코인-보르 스
출처 : https://www.kdnuggets.com/2021/06/pandas-vs-sql.html

spot_img

최신 인텔리전스

spot_img