ํ์ฌ dataframe.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 9736 entries, 0 to 9735
Data columns (total 8 columns):
updatetime 9736 non-null object
temperature 9736 non-null float64
humidity 9736 non-null float64
water 9736 non-null int64
light 9736 non-null int64
dust 9736 non-null float64
co2 9736 non-null int64
tvoc 9736 non-null int64
dtypes: float64(3), int64(4), object(1)
memory usage: 608.6+ KB
updatetime์ด ํ์ฌ object๋ก ๋์ด์๋๋ฐ ์ด ์ปฌ๋ผ์ datetime์ผ๋ก ๋ณ๊ฒฝํ ํ, dataframe์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ ๊ฑฐ๋ค.
df.updatetime = pd.to_datetime(df.updatetime)
df = df.set_index('updatetime')
df.info()
ํด๋น ์์ ์ด ๋๋๊ณ .info()๋ฅผ ๋ค์ ์ฐ์ด๋ณด๋ฉด
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 9736 entries, 2019-11-19 13:56:02 to 2019-11-26 11:17:32
Data columns (total 7 columns):
temperature 9736 non-null float64
humidity 9736 non-null float64
water 9736 non-null int64
light 9736 non-null int64
dust 9736 non-null float64
co2 9736 non-null int64
tvoc 9736 non-null int64
dtypes: float64(3), int64(4)
memory usage: 608.5 KB
์ปฌ๋ผ์๊ฐ 8->7 ๊ฐ๋ก ์ค์ด๋ค์๊ณ datetimeindex๊ฐ ์๊ฒผ๋ค.
.head()๋ก ๋ฐ์ดํฐํ๋ ์์ 0~4๊ฐ์ row๋ฅผ ์ฐ์ด๋ด.
๋ด๊ฐ ์ํ๋๊ฑด updatetime์ด ํ์ฌ ๋งค๋ถ๋ง๋ค ์ฐํ์๋๋ฐ ์ด๊ฒ์ ์๊ฐ๋จ์๋ก ๋ฌถ์ด์ ๋ค๋ฅธ ํ๋์ ๊ฐ์ ํ๊ท ์ ๋ณด๊ณ ์ถ๋ค.
์ด ๋ ์ฌ์ฉํ๋๊ฑด dataframe์ resample์ด๋ค.
from datetime import datetime
newDf = df.resample(rule='H').mean()
rule์์ ์ ํ์๋ 'H'๋ ์๊ฐ ๋จ์๋ก ๋ฌถ์ด์ ํ๊ท ์ ๋ณด์ฌ์ค ๋ผ๋ ๋ป์ด๋ค.
'D'๋ ์๊ณ , 'Q'๋ ์๊ณ ์ฌ๋ฌ๊ฐ์ง ๋ฃฐ์ด ์๋๋ฐ ๊ทธ๊ฑด ๋ฐ๋ก ์ ๋ฆฌ๋๋ฉด ์์ ํด์ผ์ง.
newDf ๋ผ๋ ๋ฐ์ดํฐํ๋ ์์ ์๋ก ๋ฐ์์ head()๋ฅผ ์ฐ์ด๋ณด์๋ค.
์์ ์ธ๋ฑ์ค์ ๊ฐ์ด 13:00์ผ๋ก ์๊ฐ๋ณ๋ก ๋์ค๊ณ , ๊ฐ ๋ํ ๊น๋ํ๊ฒ ํ๊ท ์ผ๋ก ๋์จ๊ฒ์ ํ์ธํ ์ ์๋ค.
์์ ์ ๋ค๋ฅธ ๊ฒฝ์ง๋ํ ๋๊ฐ ๋... ์ด api๋ฅผ ๋ชฐ๋ผ์ ์ ๋ง for๋ฌธ ๋์ฌ์ฏ๊ฐ๋ฅผ ๋๋ฆฌ๋ฉด์ ์๊ฐ๋จ์๋ก ๋๋ด๋ ๊ธฐ์ต์ด๋๋ฉด์ ๋ด๊ฐ ๊ฐ๋ฐ์๊ฐ ๋ง๋. ์๊ดด๊ฐ์ ๋น ์ก๋ค.
๊ทผ๋ฐ ์ด์จ๋ ์๊ฒ๋์ด์ ๋คํ์ด๋ผ๊ณ ์๊ฐํ๊ณ ํญ์ ์ธ๋๋ง๋ค pandas๋ ์ ๋ง ๋๋จํ๋ค.
๋๊ธ