시계열 데이터 분석으로 그룹별로 결손 데이터를 보완하는 스고 기술 기술
예를 들어, 이런 점포별 매출 데이터가 있었다면,
shop date sales
A 2020-01-01 100
A 2020-01-04 200
B 2020-01-02 300
B 2020-01-03 400
C 2020-01-02 500
C 2020-01-04 600
각 점포에서 매출이 없었던 날은 매출 0으로 행을 보완하고 싶다고 한다.
최종적으로 입수하고 싶은 데이터로서는↓의 이미지
shop date sales
A 2020-01-01 100.0
A 2020-01-02 0.0
A 2020-01-03 0.0
A 2020-01-04 200.0
B 2020-01-01 0.0
B 2020-01-02 300.0
B 2020-01-03 400.0
B 2020-01-04 0.0
C 2020-01-01 0.0
C 2020-01-02 500.0
C 2020-01-03 0.0
C 2020-01-04 600.0
날짜 인덱스를 그룹 간에 세분화하고 동일한 그래프 내에서 시각화하고 싶거나
그룹을 가로질러 일자 단위로 집계하고 싶은 경우 등에는 이러한 입도로 데이터를 정렬하고 싶을 때 있군요.
그룹에 따라서는 사이의 날짜가 잇따르거나 기간의 시작과 끝이 일치하지 않고,
라고 말할 때 깨끗하게 데이터를 정돈할 수 있으므로 꼭 소개하고 싶은 방법이 됩니다!
설명을 위해 먼저 샘플 데이터를 준비합니다.
# データ準備
sample = pd.DataFrame({
"shop": ["A", "A", "B", "B", "C", "C"],
"date": pd.to_datetime(["2020-1-1", "2020-1-4", "2020-1-2", "2020-1-3", "2020-1-2", "2020-1-4"]),
"sales": [100, 200, 300, 400, 500, 600],
})
pd.pivot_table
그리고 우선은 가로 전개하고 fillna
메소드로 Nan 값에 0을 대입data = pd.pivot_table(sample, index="shop", columns="date").fillna(0)
stack
메서드에서 다시 세로로 확장data = data.stack().reset_index()
data
할 수 있었다! !
CROSS JOIN을 사용하여 날짜와 그룹의 조합 테이블을 일부러 작성할 필요가 없기 때문에, 적은 코드량으로 실현할 수 있어 편하네요!
Reference
이 문제에 관하여(시계열 데이터 분석으로 그룹별로 결손 데이터를 보완하는 스고 기술 기술), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/knakazono10111/items/419d9e80b9ff64e05960텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)