
Pandas๋ ?
Pandas๋ 2008๋ Wes McKinney์ ์ํด ๊ฐ๋ฐ๋จ. ๋น์ ๊ทธ๋ ๊ธ์ต ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๊ณ ๋ถ์ํ๋ ๋ฐ ์์ด ํจ์จ์ ์ด๊ณ ์ง๊ด์ ์ธ ๋๊ตฌ์ ํ์์ฑ์ ๋๊ผ์. ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ทธ๋ Pandas๋ฅผ ์ค๊ณํ๊ณ , ์ดํ ์คํ ์์ค๋ก ๊ณต๊ฐ๋์ด ์ ์ธ๊ณ ๋ฐ์ดํฐ ๊ณผํ ์ปค๋ฎค๋ํฐ์์ ๋น ๋ฅด๊ฒ ์ธ๊ธฐ๋ฅผ ์ป๊ฒ ๋จ. Pandas๋ผ๋ ์ด๋ฆ์ "PANel DAta"์์ ์ ๋๋์์ผ๋ฉฐ, ์ด๋ ๋ค์ฐจ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐ ์ค์ ์ ๋๋ค๋ ์๋ฏธ๋ฅผ ๋ดํฌํจ.
Pandas๋ NumPy๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์คํ ์์ค์ด๋ฉฐ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ฐ์ดํฐ ์กฐ์๊ณผ ๋ถ์์ ์ํด ์ค๊ณ๋ ํ์ด์ฌ์ ๊ฐ๋ ฅํ๊ณ ์ ์ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ.
์ด๋ณด์๋ถํฐ ์๋ จ๋ ๋ฐ์ดํฐ ๊ณผํ์๊น์ง, ๋๊ตฌ๋ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ฉฐ, ๋ ๊ฐ์ง ์ฃผ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ๊ณต.
- Series: ๋ฐ์ดํฐ ํ์ ์ ์๊ด์์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ 1์ฐจ์ ๋ผ๋ฒจ ๋ฐฐ์ด
- DataFrame: ํฌ๊ธฐ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ฉฐ ๋ผ๋ฒจ์ด ๋ถ์ 2์ฐจ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก, ์คํ๋ ๋์ํธ๋ SQL ํ ์ด๋ธ๊ณผ ์ ์ฌ
Pandas๋ ๋น ๋ฅด๊ณ ์ ์ฐํ๋ฉฐ ํํ๋ ฅ์ด ๋ฐ์ด๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ์ฌ ๊ด๊ณํ ๋๋ ๋ผ๋ฒจ์ด ์ง์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๋ค๋ฃฐ ์ ์๋๋ก ์ค๊ณ๋จ. ์ค์ ๋ฐ์ดํฐ ๋ถ์ ์์ ์ ์ํ ๊ณ ๊ธ ๋ฐ์ดํฐ ์กฐ์์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์๋ก ์๋ฆฌ ์ก๊ณ ์์ผ๋ฉฐ, "์ค์ ๋ฐ์ดํฐ ๋ถ์" ์์ ์ ๊ฐ๋ฅํ๊ฒ ํจ. Pandas๋ ์คํ ์์ค ๋ฐ์ดํฐ ๋ถ์ ๋๊ตฌ ์ค ๊ฐ์ฅ ๊ฐ๋ ฅํ๊ณ ์ ์ฐํ๋ฉฐ, ๋ค์ํ ์ธ์ด์์ ์ฌ์ฉํ ์ ์๋ ๋๊ตฌ๋ก ๋ฐ์ ํ๊ณ ์์.
Pandas์ ์ฃผ์ ๊ธฐ๋ฅ
๋๋ฝ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ:
- NaN, NA ๋๋ NaT์ ๊ฐ์ ๋๋ฝ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์์
ํฌ๊ธฐ ์กฐ์ ๊ฐ๋ฅ:
- DataFrame ๋ฐ ๊ณ ์ฐจ์ ๊ฐ์ฒด์์ ์ด์ ์ฝ์ ํ๊ฑฐ๋ ์ญ์ ํ ์ ์์
์๋ ๋ฐ์ดํฐ ์ ๋ ฌ:
- ๋ผ๋ฒจ์ ๋ช ์์ ์ผ๋ก ์ ๋ ฌํ๊ฑฐ๋ ์๋์ผ๋ก ์ ๋ ฌํ ์ ์์
์ ์ฐํ ๋ฐ์ดํฐ ๊ทธ๋ฃนํ:
- ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ์ฌ ์ง๊ณ ๋ฐ ๋ณํ ์์ ์ ์ํํ ์ ์์
๋ค์ํ ๋ฐ์ดํฐ ๋ณํ:
- ํ์ด์ฌ ๋ฐ NumPy ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ DataFrame ๊ฐ์ฒด๋ก ์ฝ๊ฒ ๋ณํํ ์ ์์
์ฌ๋ผ์ด์ฑ ๋ฐ ์ธ๋ฑ์ฑ:
- ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ์์ ์ฌ๋ผ์ด์ฑ, ํฌ์ ์ธ๋ฑ์ฑ ๋ฐ ์๋ธ์ธํ ์ ์ ๊ณต
๋ณํฉ ๋ฐ ์กฐ์ธ:
- ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ง๊ด์ ์ผ๋ก ๋ณํฉํ๊ณ ์กฐ์ธํ ์ ์์
๋ฐ์ดํฐ ํํ ๋ณ๊ฒฝ:
- ๋ฐ์ดํฐ ์ธํธ์ ๋ฆฌ์ ฐ์ดํ ๋ฐ ํผ๋ฒํ ์ ์ง์
๊ณ์ธต์ ๋ผ๋ฒจ:
- ์ถ์ ์ฌ๋ฌ ๋ผ๋ฒจ์ ์ง์ ํ ์ ์์
๊ฐ๋ ฅํ I/O ๋๊ตฌ:
- CSV, Excel ํ์ผ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ ๋ค์ํ ํ์์ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ ๋ฐ ์ ์ฅํ ์ ์์
์๊ณ์ด ๋ฐ์ดํฐ ์ง์:
- ๋ ์ง ๋ฒ์ ์์ฑ, ์ด๋ ํ๊ท ๊ณ์ฐ, ์๊ณ์ด ๋ฐ์ดํฐ ๋ณํ ๋ฑ์ ์ง์
Pandas ์์ํ๊ธฐ
Pandas๋ pip ๋๋ anaconda ๋ช ๋ น์ด๋ฅผ ํตํด ์ค์นํ ์ ์์
# PyPI
pip install pandas
# conda
conda install -c conda-forge pandas
๊ธฐ๋ณธ ์์
- Series ์์ฑ: ๋ผ๋ฒจ์ด ๋ถ์ 1์ฐจ์ ๋ฐฐ์ด๋ก, ์ ์, ๋ฌธ์์ด, ํ์ด์ฌ ๊ฐ์ฒด ๋ฑ ์ด๋ค ๋ฐ์ดํฐ ํ์ ๋ ์ ์ฅํ ์ ์์
# pandas series
import pandas as pd
data = [10, 20, 30, 40]
series = pd.Series(data, index=['a', 'b', 'c', 'd'])
print(series)
# ์ถ๋ ฅ ๊ฒฐ๊ณผ
# a 10
# b 20
# c 30
# d 40
# dtype: int64
- DataFrame ์์ฑ: ํ๊ณผ ์ด๋ก ๊ตฌ์ฑ๋ 2์ฐจ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก, ์์ ํ ์ด๋ธ์ด๋ SQL ํ ์ด๋ธ์ฒ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ ์์
# pandas dataframe
import pandas as pd
data = {
"Name": ["๊น์์ธ", "์ด์ ์ฃผ", "์ก๊ณต์ฃผ"],
"Age": [25, 30, 35],
"City": ["์์ธ", "์ ์ฃผ", "๊ณต์ฃผ"]
}
df = pd.DataFrame(data)
print(df)
# ์ถ๋ ฅ ๊ฒฐ๊ณผ
# Name Age City
# 0 ๊น์์ธ 25 ์์ธ
# 1 ์ด์ ์ฃผ 30 ์ ์ฃผ
# 2 ์ก๊ณต์ฃผ 35 ๊ณต์ฃผ
Pandas๋ฅผ ์ฌ์ฉํ ๋
Pandas๋ ๋ค์๊ณผ ๊ฐ์ ์์ ์ ์ด์์ :
- ๋ฐ์ดํฐ ์ ๋ฆฌ ๋ฐ ์ ์ฒ๋ฆฌ
- ํ์์ ๋ฐ์ดํฐ ๋ถ์(EDA)
- ์๊ณ์ด ๋๋ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ ์์
๋ค๋ง, ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๊ฒฝ์ฐ Dask๋ PySpark ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ ์ ํฉํ ์ ์์
'๊ฐ๋ฐ Code > ํ์ด์ฌ Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python][numpy] Numpy ๋ฐฐ์ด ์ ์ฅ ๋ฐ ๋ถ๋ฌ์ค๊ธฐ (0) | 2025.02.09 |
---|---|
[Python][numpy] Numpy ๊ธฐ์ด๋ถํฐ ํ์ฉ๊น์ง (0) | 2025.02.08 |
[Python][pandas] ๋ฐ์ดํฐ ์ ๋ ฌํ๊ธฐ - Sort (0) | 2025.01.30 |
[Python][pandas] ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ - Excel (1) | 2025.01.22 |
[Python][pandas] ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ - CSV (0) | 2025.01.22 |