SQL 창 함수를 사용하는 방법 및 시기
5205 단어 postgresdatasciencesqldatabase
넌 할 수있어,
창 함수가 정확히 무엇을 하는지 이해하기 위해 구체적인 예를 들어 보겠습니다.
귀하가 분류 작업을 수행하는 데이터 과학자이고 다음 3시간 이내에 이벤트가 발생할지 예측하려고 한다고 가정해 보겠습니다. 데이터에서 이벤트가 정확한 시간에 발생한 경우 레이블은 1이고 그렇지 않은 경우 0입니다. 따라서 대상을 빌드하려면 백필 작업이 필요합니다. SQL 창 함수를 사용하여 수행할 수 있습니다. 먼저 데이터 프레임을 만들어 보겠습니다.
데이터베이스를 생성할 필요가 없으며
pandasql
데이터 프레임을 통해 SQL 쿼리를 실행하기 위해 pandas
라이브러리를 사용할 것입니다(pip install pandas
및 pip install pandasql
를 통해 다운로드).# import libraries
import pandas as pd
data = [
("2020-01-01 06:00:00", 0),
("2020-01-01 07:00:00", 0),
("2020-01-01 08:00:00", 0),
("2020-01-01 09:00:00", 0),
("2020-01-01 10:00:00", 0),
("2020-01-01 11:00:00", 1),
("2020-01-01 12:00:00", 0),
("2020-01-01 13:00:00", 0),
("2020-01-01 14:00:00", 0),
("2020-01-01 15:00:00", 0),
]
# create data frame
df = pd.DataFrame(data, columns=["datetime", "event"])
df.head(10)
데이터 프레임은 다음과 같습니다.
문제를 해결해 봅시다:
from pandasql import sqldf
pysqldf = lambda q: sqldf(q, globals())
solution = pysqldf(
"""
SELECT datetime, event, MAX(event) OVER
(
ORDER BY datetime ASC
ROWS BETWEEN CURRENT ROW AND 3 FOLLOWING
) as target
FROM df
"""
)
solution.head(10)
datetime
열을 사용하여 행을 오름차순으로 정렬하고 창 행을 MAX 값으로 채웠습니다. 다음은 대상 열로 얻은 데이터 프레임입니다.target
열에서 오전 11시 이전에 이전 3개 행에 라벨을 지정했습니다.
Reference
이 문제에 관하여(SQL 창 함수를 사용하는 방법 및 시기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/musaatlihan/how-and-when-to-use-sql-window-functions-3163텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)