본문 바로가기
프로그램

[파이썬] 문제 : pandas 시간대별 평균 구하기

by 오디세이99 2023. 1. 16.
728x90
반응형

시간별로 평균 내주고 싶은데 시간의 간격이 일정치 않습니다.

 
0 ~ 100 에서의 통행속도
105 ~ 200 에서의 통행속도
205 ~ 300 ...
해서 새로운 테이블을 만들고 싶습니다.

 

 

 

(방법)

- 임시로 데이터(pandas DataFrame)을 만들고,  시간대별 구분자를 만듭니다.

import pandas as pd

data = {"시간":[0,1,22,75,100, 120,185, 200, 244,290,520, 540, 1100, 1145]}

df = pd.DataFrame(data)
df["통행속도"] = [43.0, 38.0, 26.0, 38.0, 33.0, 30.7, 22.0, 33.0, 48.0, 30.0, 33.0, 33.0, 22.0, 22.0]
df["구분"] = ((df['시간']-1)/100).astype(int)    # 구분 이라는 컬럼에 시간대 구분자를 만듬.
print(df)

- 아래와 같이 '구분' 컬럼에 시간대별 구분자가 만들어졌습니다.

- 구분자가 어떤 의미가 있는 것은 아니고 0~100, 101~200 등 구간을 동일한 구분자가 되도록 하기 위함 임.

- df["구분"] = ((df['시간']-1)/100).astype(int) 에서 -1은 0~100, 101~200과 같이 100, 200이 하위 범위에 포함되어야 하기 때문임.

 

다음과 같이 groupby로 평균 구함.

df2 = df.groupby(['구분']).mean()                      # groupby로 평균 구하기
df2

아래의 통행속도는 평균값이 됨.

728x90
반응형

댓글