이 게시물에서는 Pandas를 사용하여 SQL 스타일 필터링으로 데이터 분석을 수행하는 방법을 보여 드리겠습니다. 대부분의 기업 데이터는 검색 및 조작을 위해 SQL이 필요한 데이터베이스에 저장됩니다. 예를 들어 Oracle, IBM, Microsoft와 같은 회사는 자체 데이터베이스와 SQL 구현을 보유하고 있습니다.
데이터가 항상 CSV 파일에 저장되는 것은 아니기 때문에 데이터 과학자는 경력의 특정 시점에서 SQL을 처리해야 합니다. 저는 회사의 대부분의 데이터가 Oracle에 저장되어 있기 때문에 개인적으로 Oracle을 사용하는 것을 선호합니다.
시나리오 – 1 영화 데이터세트에서 다음 기준을 가진 모든 영화를 찾는 작업이 있다고 가정해 보겠습니다.
SELECT FROM WHERE title AS movie_title ,original_language AS movie_language ,popularityAS movie_popularity ,statusAS movie_status ,vote_count AS movie_vote_count movies_data original_languageIN ('en', 'es') AND status=('Released') AND popularitybetween 500 AND 1000 AND vote_count > 5000;
이제 요구 사항에 맞는 SQL 문을 확인했으므로 Pandas를 사용하여 단계별로 실행해 보겠습니다. 두 가지 방법을 보여드리겠습니다.
1 Movies_data 데이터세트를 DataFrame에 로드합니다.
import pandas as pd movies = pd.read_csv("https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv")
각 조건에 변수를 할당하세요.
languages = [ "en" , "es" ] condition_on_languages = movies . original_language . isin ( languages ) condition_on_status = movies . status == "Released" condition_on_popularity = movies . popularity . between ( 500 , 1000 ) condition_on_votecount = movies . vote_count > 5000
3. 모든 조건(부울 배열)을 결합합니다.
final_conditions = ( condition_on_languages & condition_on_status & condition_on_popularity & condition_on_votecount ) columns = [ "title" , "original_language" , "status" , "popularity" , "vote_count" ] # clubbing all together movies . loc [ final_conditions , columns ]
title | original_언어 | status | popularity | vote_count < p> |
---|---|---|---|---|
95별 | zh
| 게시됨 | 724.247784 | 10867 < /td> |
788 데드풀 | zh
| 게시됨 | 514.569956 | 10995
|
.query() 메서드는 SQL where 절 스타일로 데이터를 필터링하는 메서드입니다. 조건은 문자열로 이 메서드에 전달될 수 있지만 열 이름에는 공백이 포함되어서는 안 됩니다.
열 이름에 공백이 있으면 Python 바꾸기 기능을 사용하여 밑줄로 바꾸세요. < /p>
내 경험에 따르면 query() 메서드는 더 큰 DataFrame에 적용할 때 이전 메서드보다 더 빠르다는 것을 발견했습니다.
import pandas as pd movies = pd . read_csv ( "https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv" )
4. 쿼리 문자열을 작성하고 메서드를 실행합니다.
.query 메서드는 여러 줄에 걸쳐 있는 삼중 따옴표 문자열에서는 작동하지 않습니다. ㅋㅋㅋ
인기수익 | 런타임 |
st |
95 | 165000000 | 157336
|
zh | interstellar | ||
---|---|---|---|---|---|---|---|---|---|
5월 11일 2014 675120017 |
169.0 |
관계 |
788 | 5 8000000 |
293660 |
zh |
다이 웨이터 |
514.569956 |
|
2016년 9월 2일 783112979 |
108.0 |
|
p>외 다수, 일반적으로 내 코딩에는 여러 값이 있습니다. 내 "in" 절을 확인하려고요. 따라서 위의 구문은 이상적이지 않습니다. Python 변수는 at 기호(@)를 사용하여 참조할 수 있습니다. | 프로그래밍 방식으로 값을 Python 목록으로 생성하고 (@)과 함께 사용할 수도 있습니다. ㅠㅠ인기 |
출시일 |
수익 |
런타임 |
95
157336 |
zh | interstellar | 724.247784 | 2014년 5월 11일 000000
|
293660 | zh | Deadpool | 514.569956 | 2016년 9월 2일 |
---|---|---|---|---|---|---|---|---|---|
108.0 | 관계
위 내용은 Pandas의 SQL 쿼리 스타일에서 데이터 하위 집합을 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!