Pandas ํ”„๋กœํŒŒ์ผ๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ์„ธํŠธ๋กœ ์ž‘์—…์„ ์‹œ์ž‘ํ•  ๋•Œ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” ์ด๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ๋ณ€์ˆ˜๊ฐ€ ํ—ˆ์šฉํ•˜๋Š” ๊ฐ’์˜ ๋ฒ”์œ„์™€ ํ•ด๋‹น ์œ ํ˜•์„ ํ™•์ธํ•˜๊ณ  ๋ˆ„๋ฝ๋œ ๊ฐ’์˜ ๊ฐœ์ˆ˜๋„ ์•Œ์•„๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Pandas ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„(EDA)์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•œ ๋งŽ์€ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์ผ๋ฐ˜์ ์œผ๋กœ df.describe()์™€ ๊ฐ™์€ ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ๊ธฐ๋Šฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์ด ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์ œํ•œ์ ์ด๋ฉฐ EDA๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ดˆ๊ธฐ ๋‹จ๊ณ„๋Š” ์„œ๋กœ ๋งค์šฐ ์œ ์‚ฌํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

Pandas ํ”„๋กœํŒŒ์ผ๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜ ์šฐ๋ฆฌ๊ฐ€ ์ถœํŒํ•˜๋Š” ์ž๋ฃŒ์˜ ์ €์ž๋Š” ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๋ฅผ ์ฐพ๋˜ ์ค‘ ๊ทธ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒฌ๋” ํ”„๋กœํŒŒ์ผ๋ง. ์ž‘์—… ๊ฒฐ๊ณผ๋Š” ํŠน์ • ๊ฐœ๋ณ„ ์ง€ํ‘œ์˜ ํ˜•ํƒœ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ถ„์„๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์ž‘์—…ํ•˜๊ธฐ ์ „์— ์•Œ์•„์•ผ ํ•  ๋Œ€๋ถ€๋ถ„์˜ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ์ƒ๋‹นํžˆ ์ƒ์„ธํ•œ HTML ๋ณด๊ณ ์„œ์˜ ํ˜•ํƒœ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” Titanic ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์˜ˆ๋กœ ๋“ค์–ด pandas-profiling ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ์˜ ํŠน์ง•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Pandas๋ฅผ ์‚ฌ์šฉํ•œ ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„

๋‚˜๋Š” Titanic ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ํฌํ•จ๋œ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ์™€ ๋ˆ„๋ฝ๋œ ๊ฐ’์˜ ์กด์žฌ๋กœ ์ธํ•ด Pandas ํ”„๋กœํŒŒ์ผ๋ง์„ ์‹คํ—˜ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์•„์ง ์ •๋ฆฌ๋˜์ง€ ์•Š์•˜๊ณ  ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ์— ๋”ฐ๋ผ ์ถ”๊ฐ€ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— pandas ํ”„๋กœํŒŒ์ผ๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํŠนํžˆ ํฅ๋ฏธ๋กญ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์–ด๋””์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ณ  ๋ฌด์—‡์— ์ฃผ์˜ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ํŒฌ๋” ํ”„๋กœํŒŒ์ผ๋ง ๊ธฐ๋Šฅ์ด ์œ ์šฉํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค.

๋จผ์ € ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ํŒฌ๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์ˆ  ํ†ต๊ณ„๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

# ะธะผะฟะพั€ั‚ ะฝะตะพะฑั…ะพะดะธะผั‹ั… ะฟะฐะบะตั‚ะพะฒ
import pandas as pd
import pandas_profiling
import numpy as np

# ะธะผะฟะพั€ั‚ ะดะฐะฝะฝั‹ั…
df = pd.read_csv('/Users/lukas/Downloads/titanic/train.csv')

# ะฒั‹ั‡ะธัะปะตะฝะธะต ะฟะพะบะฐะทะฐั‚ะตะปะตะน ะพะฟะธัะฐั‚ะตะปัŒะฝะพะน ัั‚ะฐั‚ะธัั‚ะธะบะธ
df.describe()

์ด ์ฝ”๋“œ ์กฐ๊ฐ์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Pandas ํ”„๋กœํŒŒ์ผ๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.
ํ‘œ์ค€ Pandas ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ป์€ ๊ธฐ์ˆ  ํ†ต๊ณ„

์—ฌ๊ธฐ์—๋Š” ์œ ์šฉํ•œ ์ •๋ณด๊ฐ€ ๋งŽ์ด ์žˆ์ง€๋งŒ ์—ฐ๊ตฌ ์ค‘์ธ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ํฅ๋ฏธ๋กœ์šด ์ •๋ณด๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋˜์–ด ์žˆ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ๊ตฌ์กฐ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. DataFrame, 891๊ฐœ์˜ ๋ผ์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ํ”„๋ ˆ์ž„ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋ ค๋ฉด ๋˜ ๋‹ค๋ฅธ ์ฝ”๋“œ ์ค„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณ„์‚ฐ์€ ํŠน๋ณ„ํžˆ ๋ฆฌ์†Œ์Šค ์ง‘์•ฝ์ ์ด์ง€๋Š” ์•Š์ง€๋งŒ ํ•ญ์ƒ ๋ฐ˜๋ณตํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๋ฐ ๋” ๋‚˜์€ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒฌ๋” ํ”„๋กœํŒŒ์ผ๋ง์„ ์‚ฌ์šฉํ•œ ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„

์ด์ œ pandas-profiling์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

pandas_profiling.ProfileReport(df)

์œ„์˜ ์ฝ”๋“œ ์ค„์„ ์‹คํ–‰ํ•˜๋ฉด ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„ ์ง€ํ‘œ๊ฐ€ ํฌํ•จ๋œ ๋ณด๊ณ ์„œ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์œ„์— ํ‘œ์‹œ๋œ ์ฝ”๋“œ๋Š” ๋ฐœ๊ฒฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜์ง€๋งŒ ์˜ˆ๋ฅผ ๋“ค์–ด ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š” HTML ํŒŒ์ผ์„ ์ถœ๋ ฅํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณด๊ณ ์„œ์˜ ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„์—๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ •๋ณด(๊ด€์ฐฐ ์ˆ˜, ๋ณ€์ˆ˜ ์ˆ˜ ๋“ฑ)๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฐœ์š” ์„น์…˜์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ถ„์„๊ฐ€์—๊ฒŒ ํŠน๋ณ„ํ•œ ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์—ฌ์•ผ ํ•  ์‚ฌํ•ญ์„ ์•Œ๋ฆฌ๋Š” ๊ฒฝ๊ณ  ๋ชฉ๋ก๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋Š” ๋ฐ์ดํ„ฐ ์ •๋ฆฌ ์ž‘์—…์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋Š” ์œ„์น˜์— ๋Œ€ํ•œ ๋‹จ์„œ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Pandas ํ”„๋กœํŒŒ์ผ๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.
๊ฐœ์š” ๋ณด๊ณ ์„œ ์„น์…˜

ํƒ์ƒ‰๋ณ€์ˆ˜ ๋ถ„์„

๋ณด๊ณ ์„œ์˜ ๊ฐœ์š” ์„น์…˜ ์•„๋ž˜์—์„œ ๊ฐ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ฌด์—‡๋ณด๋‹ค๋„ ๊ฐ ๋ณ€์ˆ˜์˜ ๋ถ„ํฌ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ž‘์€ ์ฐจํŠธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

Pandas ํ”„๋กœํŒŒ์ผ๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.
์—ฐ๋ น ์ˆซ์ž ๋ณ€์ˆ˜ ์ •๋ณด

์ด์ „ ์˜ˆ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด pandas ํ”„๋กœํŒŒ์ผ๋ง์€ ๋ˆ„๋ฝ๋œ ๊ฐ’์˜ ๋ฐฑ๋ถ„์œจ ๋ฐ ์ˆ˜๋Š” ๋ฌผ๋ก  ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฏธ ๋ณธ ๊ธฐ์ˆ  ํ†ต๊ณ„ ์ธก์ •๊ฐ’๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ์œ ์šฉํ•œ ์ง€ํ‘œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด Age ๋Š” ์ˆ˜์น˜ ๋ณ€์ˆ˜์ด๋ฏ€๋กœ ํžˆ์Šคํ† ๊ทธ๋žจ ํ˜•ํƒœ๋กœ ๋ถ„ํฌ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋ฉด ๋ถ„ํฌ๊ฐ€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์น˜์šฐ์ณ ์žˆ๋‹ค๋Š” ๊ฒฐ๋ก ์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜๋ฅผ ๊ณ ๋ คํ•  ๋•Œ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋Š” ์ˆซ์ž ๋ณ€์ˆ˜์˜ ๊ฒฐ๊ณผ์™€ ์•ฝ๊ฐ„ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

Pandas ํ”„๋กœํŒŒ์ผ๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.
์„ฑ๋ณ„ ๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜ ์ •๋ณด

์ฆ‰, Pandas ํ”„๋กœํŒŒ์ผ๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ‰๊ท , ์ตœ์†Œ, ์ตœ๋Œ€๋ฅผ ์ฐพ๋Š” ๋Œ€์‹  ํด๋ž˜์Šค ์ˆ˜๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด Sex โ€” ์ด์ง„ ๋ณ€์ˆ˜์ด๋ฉฐ ํ•ด๋‹น ๊ฐ’์€ ๋‘ ๊ฐœ์˜ ํด๋ž˜์Šค๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋‚˜์ฒ˜๋Ÿผ ์ฝ”๋“œ๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด pandas ํ”„๋กœํŒŒ์ผ๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ด๋Ÿฌํ•œ ์ธก์ •ํ•ญ๋ชฉ์„ ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ๊ณ„์‚ฐํ•˜๋Š”์ง€์— ๊ด€์‹ฌ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฝ”๋“œ๊ฐ€ ๊ณต๊ฐœ๋˜์–ด ์žˆ๊ณ  GitHub์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜๋ฉด ์ด์— ๋Œ€ํ•ด ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์€ ๊ทธ๋ฆฌ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ๋ธ”๋ž™๋ฐ•์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ทธ๋‹ค์ง€ ์ข‹์•„ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆซ์ž ๋ณ€์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. explain_numeric_1d:

def describe_numeric_1d(series, **kwargs):
    """Compute summary statistics of a numerical (`TYPE_NUM`) variable (a Series).
    Also create histograms (mini an full) of its distribution.
    Parameters
    ----------
    series : Series
        The variable to describe.
    Returns
    -------
    Series
        The description of the variable as a Series with index being stats keys.
    """
    # Format a number as a percentage. For example 0.25 will be turned to 25%.
    _percentile_format = "{:.0%}"
    stats = dict()
    stats['type'] = base.TYPE_NUM
    stats['mean'] = series.mean()
    stats['std'] = series.std()
    stats['variance'] = series.var()
    stats['min'] = series.min()
    stats['max'] = series.max()
    stats['range'] = stats['max'] - stats['min']
    # To avoid to compute it several times
    _series_no_na = series.dropna()
    for percentile in np.array([0.05, 0.25, 0.5, 0.75, 0.95]):
        # The dropna() is a workaround for https://github.com/pydata/pandas/issues/13098
        stats[_percentile_format.format(percentile)] = _series_no_na.quantile(percentile)
    stats['iqr'] = stats['75%'] - stats['25%']
    stats['kurtosis'] = series.kurt()
    stats['skewness'] = series.skew()
    stats['sum'] = series.sum()
    stats['mad'] = series.mad()
    stats['cv'] = stats['std'] / stats['mean'] if stats['mean'] else np.NaN
    stats['n_zeros'] = (len(series) - np.count_nonzero(series))
    stats['p_zeros'] = stats['n_zeros'] * 1.0 / len(series)
    # Histograms
    stats['histogram'] = histogram(series, **kwargs)
    stats['mini_histogram'] = mini_histogram(series, **kwargs)
    return pd.Series(stats, name=series.name)

์ด ์ฝ”๋“œ ์กฐ๊ฐ์€ ๊ฝค ํฌ๊ณ  ๋ณต์žกํ•ด ๋ณด์ด์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์š”์ ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์†Œ์Šค ์ฝ”๋“œ์— ๋ณ€์ˆ˜ ์œ ํ˜•์„ ๊ฒฐ์ •ํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ˆซ์ž ๋ณ€์ˆ˜๋ฅผ ๋ฐœ๊ฒฌํ•œ ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์ง€๋ฉด ์œ„ ํ•จ์ˆ˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ณด๊ณ  ์žˆ๋˜ ์ธก์ •ํ•ญ๋ชฉ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์œ ํ˜•์˜ ๊ฐ์ฒด ์ž‘์—…์„ ์œ„ํ•ด ํ‘œ์ค€ ํŒฌ๋” ์ž‘์—…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Series, ์ข‹๋‹ค series.mean(). ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋Š” ์‚ฌ์ „์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. stats. ํžˆ์Šคํ† ๊ทธ๋žจ์€ ์ ์‘๋œ ๋ฒ„์ „์˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. matplotlib.pyplot.hist. ์ ์‘์€ ํ•จ์ˆ˜๊ฐ€ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ตฌ๋œ ์ƒ๊ด€๊ด€๊ณ„ ์ง€ํ‘œ ๋ฐ ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ

๋ณ€์ˆ˜ ๋ถ„์„ ๊ฒฐ๊ณผ ํ›„ ์ƒ๊ด€๊ด€๊ณ„ ์„น์…˜์˜ pandas ํ”„๋กœํŒŒ์ผ๋ง์€ Pearson ๋ฐ Spearman ์ƒ๊ด€๊ด€๊ณ„ ํ–‰๋ ฌ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

Pandas ํ”„๋กœํŒŒ์ผ๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.
ํ”ผ์–ด์Šจ ์ƒ๊ด€ ํ–‰๋ ฌ

ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ณด๊ณ ์„œ ์ƒ์„ฑ์„ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ์ฝ”๋“œ ์ค„์—์„œ ์ƒ๊ด€ ๊ด€๊ณ„ ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” ์ž„๊ณ„๊ฐ’ ํ‘œ์‹œ๊ธฐ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ถ„์„์— ์ค‘์š”ํ•˜๋‹ค๊ณ  ๊ฐ„์ฃผ๋˜๋Š” ์ƒ๊ด€ ๊ด€๊ณ„์˜ ๊ฐ•๋„๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์ƒ˜ํ”Œ ์„น์…˜์˜ pandas ํ”„๋กœํŒŒ์ผ๋ง ๋ณด๊ณ ์„œ๋Š” ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์—์„œ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ ์กฐ๊ฐ์„ ์˜ˆ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ฒ˜์Œ ๋ช‡ ๊ฐœ์˜ ๊ด€์ฐฐ์ด ์ „์ฒด ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ํŠน์„ฑ์„ ๋ฐ˜์˜ํ•˜์ง€ ์•Š๋Š” ์ƒ˜ํ”Œ์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ์พŒํ•œ ๋†€๋ผ์›€์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Pandas ํ”„๋กœํŒŒ์ผ๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.
์—ฐ๊ตฌ ์ค‘์ธ ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ ์„น์…˜

๋”ฐ๋ผ์„œ ์ด ๋งˆ์ง€๋ง‰ ์„น์…˜์— ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ด์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. df.sample(5), ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ 5๊ฐœ์˜ ๊ด€์ธก์น˜๋ฅผ ๋ฌด์ž‘์œ„๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ

์š”์•ฝํ•˜์ž๋ฉด, pandas ํ”„๋กœํŒŒ์ผ๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ถ„์„๊ฐ€์—๊ฒŒ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋Œ€๋žต์ ์ธ ์•„์ด๋””์–ด๋ฅผ ๋น ๋ฅด๊ฒŒ ์–ป๊ฑฐ๋‚˜ ์ธํ…”๋ฆฌ์ „์Šค ๋ถ„์„ ๋ณด๊ณ ์„œ๋ฅผ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์ „๋‹ฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์œ ์šฉํ•  ๋ช‡ ๊ฐ€์ง€ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋™์‹œ์—, Pandas ํ”„๋กœํŒŒ์ผ๋ง์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ˆ˜๋™์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ๊ธฐ๋Šฅ์„ ๊ณ ๋ คํ•œ ์‹ค์ œ ์ž‘์—…์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ Jupyter ๋…ธํŠธ๋ถ์—์„œ ๋ชจ๋“  ์ธํ…”๋ฆฌ์ „์Šค ๋ฐ์ดํ„ฐ ๋ถ„์„์ด ์–ด๋–ค ๋ชจ์Šต์ธ์ง€ ์‚ดํŽด๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ์„ ์‚ดํŽด๋ณด์„ธ์š”. ์ด nbviewer๋กœ ๋งŒ๋“  ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋…์ž ์—ฌ๋Ÿฌ๋ถ„! ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ์„ธํŠธ ๋ถ„์„์€ ์–ด๋””์—์„œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๊นŒ?

Pandas ํ”„๋กœํŒŒ์ผ๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€