Numpy๋ฅผ ๋ฐฐ์ด๊ฒ์ Pandas ๋ฅผ ์ฐ๊ธฐ ์ํด ๋๋ฌด ์ค์ํ๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ๋
๋งํ ์ ์์ต๋๋ค๐ฒ ๋๋์ด ๋ฐ์ดํฐ ์๊ฐํ์ ์ค๋ฌด์๋ ๋ง์ด ์ฐ์ด๋ pandas๐ผ์ ๋ํด ๋ฐฐ์ฐ๋ ์๊ฐ์ ๋๋ค.
Pandas
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ๋ถ์์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ์ ์ด๋ฉด์๋ ๊ฐํธํ๊ฒ ์ฒ๋ฆฌ
- ์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐํ์
์ผ๋ก ์ด์ ๊ตฌ์ฑํ ์ ์์
(์ฐธ๊ณ ) Numpy : ์ ์ฒด ๋ฐฐ์ด ์์๋ฅผ ๋์ผํ ํ์ ์ผ๋ก ์ ํ - ์ฃผ์ ๊ธฐ๋ฅ
- ๋ฐ์ดํฐ ์ ์ถ๋ ฅ : csv, excel, RDB, JSON ๋ฑ ๋ค์ํ ํฌ๋งท์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ํ์์ ์ฌ์ฉ
- ๋ฐ์ดํฐ ๊ฐ๊ณต : ๋ถ๋ฆฌ, ๊ฒฐํฉ, ๊ณ์ธต, ํผ๋ด ๋ฑ
- ํต๊ณ ๋ถ์ ์ฒ๋ฆฌ
์๋ฃํ
- Series
- 1์ฐจ์ ๋ฐฐ์ด๊ณผ ์ ์ฌํ ์๋ฃํ
- ์์ธ(index) : ํ ๋ฒํธ
- ๊ฐ๊ฐ์ ๋ฐ์ดํฐ์ ๋ถ์ฌํ๋ ์์ฑ์ผ๋ก ๊ธฐ๋ณธ๊ฐ์ 0๋ถํฐ 1์ฉ ์ฆ๊ฐํ๋ ์ซ์ ์ง์
- index ํ๋ผ๋ฏธํฐ๋ฅผ ํตํด ์๋ก์ด ๊ฐ์ผ๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅ
- ๋ฆฌ์คํธ, ํํ ํ์ ์ผ๋ก ์๋ก์ด ๊ฐ์ ์ ๋ฌํด์ผํ๋ฉฐ ๋ค์ฐจ์ ์๋ฃํ์ ์ฌ์ฉํ ์ ์์
- ์ ๋ฌํ๋ ์์ธ์ ๊ฐ์์ ๋ฐ์ดํฐ์ ๊ฐ์๊ฐ ์ผ์นํด์ผ ํจ
- ๊ฐ๊ฐ์ ์์ธ๊ณผ ๋ฐ์ดํฐ๊ฐ ๋งคํ๋์ด ์์ผ๋ฏ๋ก dictionary ์๋ฃํ๊ณผ ์ ์ฌ
- ์ฌ๋ฌ ๊ฐ์ง ๋ฐ์ดํฐ ํ์ ์ฌ์ฉ ๊ฐ๋ฅ
โ pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ Series, dataFrame ๋ค์์คํ์ด์ค ๋ถ๋ฌ์ค๊ธฐ
- import pandas as pd
- pd.Series()
Series ์์ฑ
- ํ๋์ ๊ฐ(์ซ์, ๋ฌธ์) ๋๋ ์๋ฃํ(๋ฆฌ์คํธ, ํํ, np ๋ฐฐ์ด)์ผ๋ก ๋ฐ์ดํฐ ์ ๋ฌ
- ์ซ์
- ex) s1 = pd.Series(10)
- ex) s1 = pd.Series(10)
- ๋ฌธ์
- ex) s2 = pd.Series('abc')
- ์๋ฃํ
- ex) s3 = pd.Series([10, 20, 30])
- ๋ฐ์ดํฐ ํ์
์ด ์๋ก ๋ค๋ฅธ ๋ฆฌ์คํธ ์๋ฃํ
- ex) s4 = pd.Series([10.3, 'test', 200, [1, 2, 3]])
- ๋์
๋๋ฆฌ ์๋ฃํ(์๋์ผ๋ก ๋ผ๋ฒจ ๋ถ์ฌ, key๊ฐ index, value๊ฐ ์ค์ ๋ฐ์ดํฐ)
- ex) s5 = pd.Series({'a':10, 'b':20, 'c':30})
Series ์์ฑ
- ์์ฑ์ ์๊ดํธ๋ฅผ ๋ถ์ด์ง ์์
- index : series ๊ฐ์ฒด์ ์ธ๋ฑ์ค ๋ฐฐ์ด์ ๋ฐํ
- values : series ๊ฐ์ฒด์ ๋ฐ์ดํฐ(๊ฐ) ๋ฐฐ์ด์ ๋ฐํ
- name : series ๊ฐ์ฒด์ ์ด๋ฆ์ ๋ฐํ
- dtype : series ๊ฐ์ฒด์ ๋ฐ์ดํฐ ํ์ ์ ๋ฐํ
- size : series ๊ฐ์ฒด์ ๋ฐ์ดํฐ ๊ฐ์(๊ธธ์ด)๋ฅผ ๋ฐํ
- shape : series ๊ฐ์ฒด์ ๊ตฌ์กฐ(ํ, ์ด, ์ฐจ์)๋ฅผ ๋ฐํ
โ(์ฃผ์) : 1) ํ ๊ฐ์(๋ฐ์ดํฐ ๊ฐ์)์ ๋์ผํ ๊ธธ์ด๋ฅผ ์ ๋ฌํด์ผ ํ๋ค
2) ์ธ๋ฑ์ค ๊ฐ์ฒด ๋ด๋ถ์ ๋จ์ผ ๋ผ๋ฒจ ์ธ๋ฑ์ค๋ง ์์ ํ๋๊ฒ์ ๋ถ๊ฐ๋ฅ
3) ์ธ๋ฑ์ค ๋ผ๋ฒจ๋ง ์์ ์ ์ ์ฒด ์ธ๋ฑ์ค๋ฅผ ๋์ ํด์ค์ผ ํ๋ค
๐ dictionary ์๋ฃํ๊ณผ ์ ์ฌํ Series ์๋ฃํ
1) dictionary ์๋ฃํ์ผ๋ก Series ์์ฑ
ex)
data = {'์์ธ':100, '๊ฒฝ๊ธฐ':200, '๊ฐ์':300, '๋ถ์ฐ':400}
sample = pd.Series(data)
print(data)
print(sample)
{'์์ธ': 100, '๊ฒฝ๊ธฐ': 200, '๊ฐ์': 300, '๋ถ์ฐ': 400}
์์ธ 100
๊ฒฝ๊ธฐ 200
๊ฐ์ 300
๋ถ์ฐ 400
2) Series ๊ฐ์ฒด์ in ์ฐ์ฐ์
dictionary์ ์ ์ฌ : in ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด ๋ด๋ถ ์์ ๊ฒ์ฌ์
key๊ฐ์ ํด๋นํ๋ ๋ผ๋ฒจ์ ์ด์ฉํด ํด๋น ์์๊ฐ ์๋์ง ์๋์ง ์ฌ๋ถ๋ฅผ True, False๋ก ์ถ๋ ฅ
ex)
print('์์ธ' in data)
print('์์ธ' in sample)
True
True
3) for๋ฌธ์์ in์ฐ์ฐ์๋ก ์ ๊ทผ : Series์ value๊ฐ์ ์ฐธ์กฐ
ex)
for key in data:
print(key)
print("--------------")
for value in sample.values:
print(value)
์์ธ
๊ฒฝ๊ธฐ
๊ฐ์
๋ถ์ฐ
--------------
100
200
300
400
์ธ๋ฑ์ฑ(Indexing)
- ํ๋์ ํน์ ๊ฐ์ ์ ํํ๊ฑฐ๋ ๋ณ๊ฒฝ
- ์ฐธ์กฐํ๋ ์ธ๋ฑ์ค : ๊ธฐ๋ณธ ์ซ์ ์ธ๋ฑ์ค, ๋ผ๋ฒจ ์ธ๋ฑ์ค
- ์๋ก์ด ์ธ๋ฑ์ค๋ฅผ ์ค์ ํด๋ ๊ธฐ๋ณธ ์ซ์ ์ธ๋ฑ์ค ์ฌ์ฉ ๊ฐ๋ฅ
์ฌ๋ผ์ด์ฑ(Slicing)
- Series๊ฐ์ฒด[์์์ธ๋ฑ์ค : ๋์ธ๋ฑ์ค : ๊ฐ๊ฒฉ]
- ํน์ ๋ฒ์์ ๊ฐ์ ์ ํํ๊ฑฐ๋ ๋ณ๊ฒฝ
- ๊ธฐ๋ณธ ์ซ์ ์ธ๋ฑ์ค ๋๋ ์๋ก์ด ์ธ๋ฑ์ค ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅ
- ๊ธฐ๋ณธ ์ซ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด์ ์ฌ๋ผ์ด์ฑ ํ ๋๋ ๋ ์ธ๋ฑ์ค ๋ฏธํฌํจ
- ๋ผ๋ฒจ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด์ ์ฌ๋ผ์ด์ฑ ํ ๋ ๋ ์ธ๋ฑ์ค๊น์ง ๋ชจ๋ ํฌํจ
๋ค์ ์๊ฐ์๋ DataFrame ์ ๋ธ๋ก๊น ํ ์์ ์ ๋๋ค.
'ํ๋ฃจ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ 14์ฅ ๐๋ฐ์ดํฐ ์๊ฐํ_matplotlib๐ (0) | 2022.10.30 |
---|---|
์ 13์ฅ ๐๋ฐ์ดํฐ ๋ถ์_pandas(Data_Frame)๐ (0) | 2022.10.24 |
์ 11์ฅ ๐๋ฐ์ดํฐ ๋ถ์_Numpy-2(์ฐ์ฐ)๐ (0) | 2022.10.20 |
์ 10์ฅ ๐๋ฐ์ดํฐ ๋ถ์_Numpy-1๐ (0) | 2022.10.18 |
์ 9์ฅ ๐ํ์ด์ฌ(python) ๊ตฌ์กฐ์ฒด์ ํด๋์ค๐ (0) | 2022.10.17 |