ํ๋ก๊ทธ๋๋ฐ ์ธ๊ณ๋ฅผ ํ๊ตฌํฉ์๋ค.
<ํ๋ค์ค(pandas)>
- ํ๋ ฌ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ค์ํ ํจ์๋ฅผ ์ง์ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ํ์ผ ์ฝ๊ธฐ, ์ ์ฅ, ํ๋ ฌ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ๊ธฐ๋ณธ์๊ฐํ ๋ฑ ์ง์
- ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ๊ณผ์ ์์ ์ฃผ๋ก ์ฌ์ฉ๋จ
<๋ฐ์ดํฐ ๋ถ์๊ณผ์ >
๋ฐ์ดํฐ ์์ง > ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ > ๋ฐ์ดํฐ ๊ฐ๊ณต(ํ์์ ์ ์ฒ๋ฆฌ) >
๋ฐ์ดํฐ ๋ถ์ ํ์/์๊ฐํ(ํ์์ ์ ์ฒ๋ฆฌ) > ํ์์ ๋ชจ๋ธ ํ๋ จ(๋จธ์ ๋ฌ๋ or ๋ฅ๋ฌ๋) >
์น์๋น์ค ๋๋ ๋ถ์๋ณด๊ณ ์
* ์ผ๋ฐ์ ์ผ๋ก ์ฑ
์์๋ : ๋ฐ์ดํฐ์์ง > ์ ์ฒ๋ฆฌ > ๋ถ์ > ์๊ฐํ๋ก ์ค๋ช
ํ๊ณ ์์
* ๋ถ์๊ณผ์ ์ ํ์ฌ์ ๋ฐ๋ผ ๋ค๋ฆ
< ๋ฐ์ดํฐ ์์ง ์ ํ์ธ ์ฌํญ>
- ๋ ์ง ํ์ธ : ๊ธฐ์ค์ผ๋ก ์ฌ์ฉ
- ๋ฒ์ฃผํ ๋ฐ์ดํฐ ํ์ธ : ์๋ก ๋จ์ ๋๋ ์ฌ์์ ๊ฐ์ ๋ฐ์ดํฐ
1. ๋ฐ์ดํฐ ์ฝ์ด๋ค์ด๊ธฐ
[ ํ์ผ ์์น ์ง์ ]
### ํ์ผ ์์น ์ง์
file_path = "./files/sample_1.xlsx"
[ ํ์ผ ๋ฐ์ดํฐ ์ถ์ถํ๊ธฐ ]
### ํ์ผ ๋ฐ์ดํฐ ์ถ์ถํ๊ธฐ
# - ์ฒซ๋ฒ์งธ : ํ์ผ ์ง์ (์์น ํฌํจ)
# - ๋๋ฒ์งธ : ์ปฌ๋ผ๋ช
์ผ๋ก ์ฌ์ฉํ ํ์ ์์น (๋ํดํธ 0)
# - ์ธ๋ฒ์งธ : ํ์ ๊ฐ์ฅ ๋ฐ์์๋ถํฐ ํฌํจํ์ง ์์ ํ์ ๊ฐฏ์ (๋ํดํธ 0)
# - ๋ค๋ฒ์งธ : ๊ฐ์ง๊ณ ์ฌ ์ด์ ๋ฒ์(A:C A๋ถํฐ C๊น์ง์ ์ด) (๋ํดํธ ๋ฐ์ดํฐ๊ฐ ์๋ ๋ชจ๋ ์ด)
sample_1 = pd.read_excel(file_path,
header=1,
skipfooter=2,
usecols="A:C")
sample_1
[ ๊ฒฐ๊ณผ ]
[ ๋ฐ์ดํฐ ์ ๋ณด ํ์ธํ๊ธฐ ]
### ๋ฐ์ดํฐํ๋ ์ ์ ๋ณด ํ์ธํ๊ธฐ
# - DataFrame ํ์
: ํ๋ ฌ์ ์ ์ฅ ๊ด๋ฆฌํ๋ ํ์
# - (์ค์) info() ํจ์๋ ๋ฐ์ดํฐ์ ๊ฒฐ์ธก์น(nan, nulll) ๋ฐ์ดํฐ ํ์ธ ๊ฐ๋ฅ
# - RangeIndex : ์ ์ฒด ํ(row)์ ๊ฐฏ์
# - ์ ์ฒด ํ์ ๊ฐฏ์์ ๊ฐ ์ปฌ๋ผ์ ๊ฐฏ์(Non-Null)๊ฐ ์ ๋ง์ผ๋ฉด -> ๊ฒฐ์ธก ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ค๋ ์๋ฏธ
sample_1.info()
[ ๊ฒฐ๊ณผ ]
[ ๋ฐ์ดํฐ ํ/์ด์ด ๋ง์ ๊ฒฝ์ฐ ]
### ๋ฐ์ดํฐํ๋ ์ ์ถ๋ ฅ
# - ๋ฐ์ดํฐ ํ/์ด์ด ๋ง์ ๊ฒฝ์ฐ -> ๊ธฐ๋ณธ ์์ 5๊ฐ, ํ์ 5๊ฐ๋ฅผ ์ถ์ถํด์ ๋ณด์ฌ์ค
# - ๋ฐ์ดํฐ ํ/์ด์ ๊ฐฏ์๊ฐ ์์ผ๋ฉด ๋ชจ๋ ๋ณด์ฌ์ค
sample_1
[ ๊ฒฐ๊ณผ ]
[ head() : ์์ ๋ฐ์ดํฐ ์กฐํํ ๋ ]
### head() : ์์ ๋ฐ์ดํฐ ์กฐํํ ๋
sample_1.head()
sample_1.head(1)
[ tail() : ํ์ ๋ฐ์ดํฐ ์กฐํํ ๋ ]
### tail() : ๋ง์ง๋ง ๋ฐ์ดํฐ ํ์ธ (๊ธฐ๋ณธ 5๊ฐ)
sample_1.tail()
sample_1.tail(1)
[ ๊ฒฐ๊ณผ ]
[ ๊ธฐ์ดํต๊ณ ๋ฐ์ดํฐ describe() ]
# - count : ๋ฐ์ดํฐ ํ์ ๊ฐฏ์
# - mean : ๋ฐ์ดํฐ ํ๊ท
# - std : ํ์คํธ์ฐจ
# - min : ์ต์๊ฐ
# - max : ์ต๋๊ฐ
# 25%, 50%, 75% : 4๋ถ์์ ๋ฐ์ดํฐ(50% -> ์ค์๊ฐ)
# -> 4๋ถ์์ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด์ ์ด์์น(์ด์ํ) ๋ฐ์ดํฐ ํ์ธํฉ๋๋ค.
# - ๊ธฐ์ดํต๊ณ ๋ฐ์ดํฐ๋ ์ซ์๊ฐ์ ๊ฐ์ง๋ ์ปฌ๋ผ์ ๋ํด์๋ง ํ์ธ
### ๊ธฐ์ดํต๊ณ ๋ฐ์ดํฐ
# - count : ๋ฐ์ดํฐ ํ์ ๊ฐฏ์
# - mean : ๋ฐ์ดํฐ ํ๊ท
# - std : ํ์คํธ์ฐจ
# - min : ์ต์๊ฐ
# - max : ์ต๋๊ฐ
# 25%, 50%, 75% : 4๋ถ์์ ๋ฐ์ดํฐ(50% -> ์ค์๊ฐ)
# -> 4๋ถ์์ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด์ ์ด์์น(์ด์ํ) ๋ฐ์ดํฐ ํ์ธํฉ๋๋ค.
# - ๊ธฐ์ดํต๊ณ ๋ฐ์ดํฐ๋ ์ซ์๊ฐ์ ๊ฐ์ง๋ ์ปฌ๋ผ์ ๋ํด์๋ง ํ์ธ
sample_1.describe()
[ ๊ฒฐ๊ณผ ]
2. ๋ฐ์ดํฐ ์กฐํํ๊ธฐ
[ ๊ตญ์ ์ฝ๋ ๋ฐ์ดํฐ ์กฐํํ๊ธฐ ]
### ๊ตญ์ ์ฝ๋ ๋ฐ์ดํฐ ์กฐํํ๊ธฐ
sample_1["๊ตญ์ ์ฝ๋"]
[ ํ์ ํ์ธํ๊ธฐ ]
### ํ์
ํ์ธํ๊ธฐ
# Series: ํํ๊ณผ ๋ชจ์()์ด ๊ฐ์ต๋๋ค.(์ฌ์ฉ๋ฒ๋ ๋์ผํฉ๋๋ค.)
# {"๊ตญ์ ์ฝ๋" : (๋ฐ์ดํฐ, ๋ฐ์ดํฐ, ...)}
type(sample_1["๊ตญ์ ์ฝ๋"])
[ ๊ฒฐ๊ณผ ]
[ ์ฑ๋ณ ๋ฐ์ดํฐ ์กฐํํ๊ธฐ ]
### ์ฑ๋ณ ๋ฐ์ดํฐ ์กฐํํ๊ธฐ
sample_1["์ฑ๋ณ"]
[ ๊ฒฐ๊ณผ ]
sample_1[["์ฑ๋ณ"]]
[ ํ์ ํ์ธํ๊ธฐ ]
type(sample_1[["์ฑ๋ณ"]])
[ ๊ตญ์ ์ฝ๋์ ์ฑ๋ณ ๋ชจ๋ ์กฐํํ๊ธฐ ]
### ๊ตญ์ ์ฝ๋์ ์ฑ๋ณ ๋ชจ๋ ์กฐํํ๊ธฐ
sample_1[["๊ตญ์ ์ฝ๋", "์ฑ๋ณ"]]
[ ๊ฒฐ๊ณผ ]
3. ๊ธฐ์ค๋ ์ ์ปฌ๋ผ ์ถ๊ฐํ๊ธฐ
### 2019-11 ๊ฐ์ ์ถ๊ฐํ๊ธฐ
sample_1["๊ธฐ์ค๋
์"] = '2019-11'
sample_1
[ ๊ฒฐ๊ณผ ]
4. ๋ฐ์ดํฐ ํํฐ๋งํ๊ธฐ
### ์ฑ๋ณ ์ค์ ์ฌ์ฑ์ธ ๋ฐ์ดํฐ๋ง ์ถ์ถํ๊ธฐ
condition = sample_1["์ฑ๋ณ"] == "์ฌ์ฑ"
condition
sample_1[condition == True]
sample_1[condition == False]
sample_1[(sample_1["์ฑ๋ณ"] == "์ฌ์ฑ") == True]
[ ๊ฐ์ฒด ์ฃผ์ ์ ๋ฌ ๋ฐฉ์ ]
# ๊ฐ์ฒด ์ฃผ์ ์ ๋ฌ ๋ฐฉ์
# - ๋๋ค ๊ฐ์ ๊ณณ์ ๋ฐ๋ผ๋ด
๋๋ค.
### ๊ฐ์ฒด ์ฃผ์ ์ ๋ฌ ๋ฐฉ์
# - ๋๋ค ๊ฐ์ ๊ณณ์ ๋ฐ๋ผ๋ด
๋๋ค.
sample_2 = sample_1
sample_2
[ ๋ฉ๋ชจ๋ฆฌ ๋ณต์ ๋ฐฉ์ ]
# copy() : ๋ฉ๋ชจ๋ฆฌ ๋ณต์ ๋ฐฉ์ (์ ๊ท๋ก ๋์ผํ๊ฒ ์์ฑ๋จ)
# - ์ ๊ท๋ก ๋ง๋ค์ด์ง ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ฐ์์ด(์๋ก ์ํฅ ์๋ฐ์)
### copy() : ๋ฉ๋ชจ๋ฆฌ ๋ณต์ ๋ฐฉ์ (์ ๊ท๋ก ๋์ผํ๊ฒ ์์ฑ๋จ)
# - ์ ๊ท๋ก ๋ง๋ค์ด์ง ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ฐ์์ด(์๋ก ์ํฅ ์๋ฐ์)
sample_2 = sample_1.copy()
sample_2