Pandas DataFrame에 대한 SQL 쿼리 - 1부
9646 단어 pythonsqldatasciencesqlite
놀이터 데이터베이스
sqlitetutorial.net 및 SQLite Browser의 데이터베이스를 사용하여 쿼리를 처리하고 있습니다. 데이터베이스에서 이 게시물에는 하나의 테이블만 사용하겠습니다. 여기서는
Albums
테이블만 사용하겠습니다.Python 놀이터의 경우 Anaconda Jupyter Notebook을 사용하고 있습니다. 그리고 테이블을 Pandas DataFrame으로 가져오려면 테이블을 csv 파일로 내보내기만 하면 됩니다. 이 작업은 SQLite Browser를 사용하여 수행하거나 my gist 에서 가져올 수 있습니다.
또는 Google Colab을 알고 있다면 Jupyter Notebook의 훌륭한 대안입니다.
데이터 프레임 준비
albums.csv
파일이 python 또는 ipynb 파일과 동일한 디렉토리에 있다고 가정하고 다음과 같이 pandas 데이터 프레임에 로드할 수 있습니다.import pandas as pd
albums_df = pd.read_csv("albums.csv")
Pandas Dataframe에 대한 기본 SQL 쿼리
1부에서는 DataFrame 구문에서 SQL의
SELECT
, WHERE
, LIMIT
및 ORDER BY
만 다룹니다.모든 열 및 행 선택
SELECT *
FROM albums
albums_df
하나의 열 선택
SELECT Title
FROM albums
albums_df[['Title']]
더 많은 열 선택
SELECT Title, ArtistId
FROM albums
albums_df[['Title', 'ArtistId']]
하나의 조건으로 필터링
SELECT *
FROM albums
WHERE Title = 'The Best Of Van Halen, Vol. I'
albums_df[albums_df['Title'] == 'The Best Of Van Halen, Vol. I']
더 많은 조건으로 필터링
SELECT *
FROM albums
WHERE ArtistId = 2 AND AlbumId = 3
albums_df[(albums_df['ArtistId'] == 2) & (albums_df['AlbumId'] == 3) ]
더 많은 값으로 필터링
SELECT *
FROM albums
WHERE ArtistId IN (8, 9, 10)
albums_df[albums_df['ArtistId'].isin([8,9,10])]
문자열에서 검색
사이:
SELECT *
FROM albums
WHERE Title LIKE '%The%'
albums_df[albums_df['Title'].str.contains('The')]
시작:
SELECT *
FROM albums
WHERE Title LIKE 'The%'
albums_df[albums_df['Title'].str.contains('^The')]
로 끝나다:
SELECT *
FROM albums
WHERE Title LIKE '% Hits'
albums_df[albums_df['Title'].str.contains(' Hits$')]
처음 10개 행 제한
SELECT *
FROM albums
LIMIT 10
albums_df[0:10]
또는
albums_df.head(10)
열을 기준으로 정렬
오름차순:
SELECT *
FROM albums
ORDER BY Title ASC
albums_df.sort_values(['Title'], ascending=True)
내림차순:
SELECT *
FROM albums
ORDER BY Title DESC
albums_df.sort_values(['Title'], ascending=False)
로
Reference
이 문제에 관하여(Pandas DataFrame에 대한 SQL 쿼리 - 1부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dendihandian/sql-query-into-pandas-dataframe-part-1-1a3j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)