코드 5줄의 마법, 5줄 머신러닝 PyCaret: 데이터 분석 프로젝트에 AutoML 날개 달기
# --- [핫픽스] dask ↔ sktime 호환 패치 --- import types try: import dask.dataframe as dd # 최신 라이브러리 구조 변화에 대응하여 호환성을 맞춰주는 코드 # 상세한 내용을 이해할 필요는 없으며, 안정적인 실행을 위한 장치로 이해하세요. if not hasattr(dd, "core"): dd.core = types.SimpleNamespace() if not hasattr(dd.core, "DataFrame"): try: from dask.dataframe import frame as _frame dd.core.DataFrame = _frame.DataFrame except ImportError: class _DummyDF: pass dd.core.DataFrame = _DummyDF except ImportError: pass # dask가 설치되지 않은 환경에서는 무시합니다. 들여쓰기가 제대로 되어있지 않아 노션의 코드를 복사하여 붙여넣을 시 에러납니다.
1) 해당 부분에서 비교연산자가 이상/이하가 아니고 초과/미만을 사용하고 있는데 분위수값에 해당하는 값이 있으면 그 결과가 다를꺼 같아서요. 25% 데이터 구하세요 하는 문제는 정의자체가 분위수값 미만의 값 이런식으로 정해진건가요? 2) 하위 25% 데이터를 구하는 함수가 있다면, 상위 25%는 ~ 를 이용해서도 함수를 쓸 수 있을까요? 3) 가장 큰 값이 두개 이상인경우 더 앞선것을 불러오던데, 해결방법이 있을까요? (가장 큰 값이 동일한경우 모든 인덱스를 불러오게끔)
윈도우 함수 연습문제 6번 질문입니다. 카일스쿨님 쿼리와 다른 건 다 동일하게 작성했었는데, OVER() 안에 order by를 모르고 깜빡했었습니다. 그런데도 결과가 정답( moving_avg2 )과 같게 정상 출력이 되었습니다. (QUALIFY로 검증해봤는데 moving_avg 와 전부 같다고 나오더라구요) 원래 ORDER BY를 안 써줘도 프레임 설정이 자동으로 가능한 걸까요? ORDER BY에도 기본값 같은 게 있는지 궁금합니다. -- 윗부분은 생략 SELECT date, number_of_orders, AVG(num2) OVER(ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS moving_avg, AVG(num2) OVER(ORDER BY date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS moving_avg2 FROM filled_data -- QUALIFY moving_avg != moving_avg2 ORDER BY date
실행 결과는 동일하게 나왔는데, COUNT를 다르게 쓴 것이 괜찮은지 궁금해서 질문 남깁니다! 상황 같은 날짜에 여러 번 쿼리 실행한 사용자들이 있어서 COUNT(*) 을 해야겠다고 판단했습니다. (어차피 Distinct가 없으면 같은 날짜라도 각각 카운트한다는 것을 깜빡했었습니다ㅠ) 카일스쿨님은 COUNT(query_date) 를 쓰셨고, 결과만 보면 제 쿼리와 동일하긴 합니다. 궁금한 점 제 쿼리처럼 COUNT(*)을 쓰는 경우에 문제가 될까요? 혹시 실무적으로 COUNT(*)은 잘 쓰지 않는지 궁금합니다! (Ex. 어떤 컬럼의 개수를 세는 것인지 가독성이 좋지 않다든가..) 제 쿼리는 아래와 같습니다. SELECT *, COUNT(*) OVER(PARTITION BY user) AS total_query_cnt FROM advanced.query_logs ORDER BY query_date, user
다른 강의들이나 교재들 보면 prior 자식 = 부모 는 순방향 이라고 설명해 주시는데 이 강의에서만 역방향이라고 설명해 주시네요. 특히 노랭이 63번도 정답이 4번인 이유가 "connect by 절에만 사용 가능하다" 이 부분이 틀렸기 때문이라고 나오는데.. 보충 설명이 가능하실까요?
안녕하세요 영한님! 11강에서 created_at 과 updated_at 값을 데이터베이스의 DEFAULT CURRENT_TIMESTAMP 과 ON UPDATE CURRENT_TIMESTAMP 기능을 사용하는 가이드에 대해 다뤄주셨는데요. Spring Data JPA를 사용하면 아래와 같이 @EnableJpaAuditing 을 사용하여 Application 단에서 Auditing 기능을 사용할 수 있는 걸로 알고 있습니다. @EntityListeners(AuditingEntityListener.class) @MappedSuperclass @Getter public class BaseEntity { @CreatedDate @Column(updatable = false) private LocalDateTime createdAt; @LastModifiedDate private LocalDateTime updatedAt; } 만약 위와 같은 JPA 기능을 데이터베이스와 같이 사용한다면, Application 단에서 createdAt , updatedAt 값이 채워진 채로 저장되고, DB에서 한 번 더 덮어쓰는 구조가 될 것 같더라고요. 실무에서 created_at 과 updated_at 값을 채울 때, @EnableJpaAuditing 과 데이터베이스의 DEFAULT CURRENT_TIMESTAMP 과 ON UPDATE CURRENT_TIMESTAMP 중 어떤 것을 사용하는게 더 나은 선택일지 궁금합니다. 각각을 사용했을 때 유리한 케이스가 따로 있을까요?
김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요. SQL 쿼리의 논리적 실행 순서에서 SELECT 절 설명에 대한 질문이 있습니다. SELECT 절에 SUM, COUNT 같은 집계 함수 계산이라는 부분이 있는데 이 내용은 GROUP BY 에서 HAVING 으로 넘어갈 때 이루어지는 것이 아닌가요? HAVING 절에서 집계 함수로 필터링이 가능한데 이 계산이 SELECT 에서 이루어진다는 것이 이해가 가지 않아서 질문드립니다.
array, struct 연습문제 4번에 대한 질문입니다. 위 사진처럼 카일스쿨님과 동일한 쿼리를 작성했는데, 출력 결과가 다르게 나와서 문의드립니다. 질문1: 사진에 보시듯이 user_id 컬럼에 NULL이 들어간 행들이 있는데, 제가 뭔가 잘못한 걸까요? 만약 NULL이 나오는 게 정상이라면 그 이유도 궁금합니다! 질문2: 만약 NULL이 나오는 게 정상이라면, 실무에서도 이렇게 id 컬럼에 null이 허용되는지 궁금합니다. 보통 이런 id 값은 primary key로 쓰는 줄 알았어서요..! 질문3: 연습문제 뒤에 추가로 COUNT 출력해보는 것도 결과(cnt)가 다른데, 이것도 정상인지 확인부탁드립니다. 혹시 카일스쿨님이 강의 찍으실 때 쓰신 데이터셋과 변동사항이 있나요?
sellers와 items 테이블이 있을때 두 테이블을 조인한다고 할때 만약 items에 seller_id가 외래키로 잡혀 있지 않을 경우 select * from items i join seller s on i.seller_id = s.seller_id 이렇게 조인하면 풀스캔 조인이 일어나는 걸까요? 추가적으로 select * from items i join seller s on i.seller_id = s.seller_id where s.seller_id = '행복상점' 과 select * from items i join seller s on i.seller_id = s.seller_id where i.seller_id = '행복상점' 이렇게 두 쿼리를 실행 할떄 첫번째 쿼리는 인덱스를 활용해 검색을 하고 두번째 쿼리는 테이블 풀스캔을 해서 검색할까요?
코드 5줄의 마법, 5줄 머신러닝 PyCaret: 데이터 분석 프로젝트에 AutoML 날개 달기
ydata_profiling 버전 확인 시 'v4.17.0' 입니다. 이슈 해결을 위해 노력해보았으나 너무 어려워 확인 부탁드립니다. 버전 충돌 문제인 지 어렵네요.. 처음에 Overview 화면은 잘 나오나 뒤에 Correlations 등 클릭하면 다시 미니 주피터랩 화면으로 나타납니다. html로 저장하여 확인 시에는 전부 다 잘 확인되는데 notebook 화면에서 확인이 안됩니다. notebook화면에서 확인할 수 있는 방법 알려주시면 감사하겠습니다. conda 명령어로도 실행해보았으나 동일한 이슈가 발생합니다. conda install -c conda-forge ydata-profiling import numpy as np import pandas as pd from ydata_profiling import ProfileReport df = pd.DataFrame(np.random.rand(100, 5), columns=["a", "b", "c", "d", "e"]) profile = ProfileReport(df, title="YData Profiling Report") profile