๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ์ดํ„ฐ์‚ฌ์ด์–ธ์Šค

Dataframe ์‹œ๊ฐ„๋ณ„๋กœ ํ‰๊ท ๋‚ด๊ธฐ

by ์ด๋…ธํ‚ค_ 2019. 11. 26.

ํ˜„์žฌ 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๋Š” ์ •๋ง ๋Œ€๋‹จํ•˜๋‹ค. 

๋Œ“๊ธ€