๋ฐ์ดํฐ ํ๋ ์(DataFrame) ๊ฐ์ฒด
โข
๋ฐ์ดํฐ ํ
์ด๋ธ ์ ์ฒด๋ฅผ ์ง์นญํ๋ ๊ฐ์ฒด
โข
๋ํ์ด ๋ฐฐ์ด์ ํน์ฑ์ ๊ทธ๋๋ก ๊ฐ์ง
โข
์ธ๋ฑ์ฑ์ ์ด๊ณผ ํ์ ๊ฐ๊ฐ ์ฌ์ฉํ์ฌ ํ๋์ ๋ฐ์ดํฐ์ ์ ๊ทผ
๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ์ ํ์ํ ๊ธฐ์ด ๋ฌธ๋ฒ๋ค
1.
query() : ๋ฐ์ดํฐํ๋ ์์์ ์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋ง
- ์์: df.query('age > 30')๋ age ์ปฌ๋ผ์ด 30 ์ด๊ณผ์ธ ๋ชจ๋ ํ์ ๋ฐํ
2.
[], [[]]: []๋ ๋จ์ผ ์ปฌ๋ผ์ ์ ํํ๊ณ , [[]]๋ ์ฌ๋ฌ ์ปฌ๋ผ์ ์ ํ
- ์์: df['age']๋ age ์ปฌ๋ผ์, df[['age', 'name']]๋ age์ name ์ปฌ๋ผ์ ์ ํ
3.
sort_values() : ๋ฐ์ดํฐ๋ฅผ ํน์ ์ปฌ๋ผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
- ์์: df.sort_values('age')๋ age ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
4.
groupby(): ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ์ฌ ์ง๊ณ, ๋ณํ, ํํฐ๋ง์ ์ํ
- ์์: df.groupby('gender').mean()๋ gender์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ๊ณ , ๊ฐ ๊ทธ๋ฃน์ ํ๊ท ์ ๊ณ์ฐ
5.
assign(): ์๋ก์ด ์ปฌ๋ผ์ ์ถ๊ฐํ๊ฑฐ๋ ๊ธฐ์กด ์ปฌ๋ผ์ ์์
- ์์: df.assign(new_column=lambda x: x['age'] * 2)๋ age ์ปฌ๋ผ์ ๋ ๋ฐฐ ๊ฐ์ ๊ฐ์ง๋ ์๋ก์ด ์ปฌ๋ผ์ ์ถ๊ฐ
6.
merge(): ๋ ๋ฐ์ดํฐํ๋ ์์ ํน์ ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ๋ณํฉ
- ์์: df1.merge(df2, on='user_id')๋ ๋ ๋ฐ์ดํฐํ๋ ์์ user_id ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ๋ณํฉ
7.
agg(): ๋ค์ํ ์ง๊ณ ํจ์๋ฅผ ํ ๋ฒ์ ์ ์ฉํ์ฌ ์์ฝ ํต๊ณ๋ฅผ ๊ณ์ฐ
- ์์: df.agg({'age': ['min', 'max'], 'salary': 'mean'})๋ age์ ์ต์๊ฐ๊ณผ ์ต๋๊ฐ, salary์ ํ๊ท ์ ๊ณ์ฐ
8.
concat(): ๋ฐ์ดํฐํ๋ ์์ ํ์ด๋ ์ด ๋ฐฉํฅ์ผ๋ก ์ฐ๊ฒฐ
- ์์: pd.concat([df1, df2])๋ ๋ ๋ฐ์ดํฐํ๋ ์์ ํ ๋ฐฉํฅ์ผ๋ก ์ฐ๊ฒฐ
9.
loc, iloc: loc๋ ๋ ์ด๋ธ์ ๊ธฐ์ค์ผ๋ก ํ ๋๋ ์ด์ ์ ํํ๊ณ , iloc๋ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ํ
- ์์: df.loc[0, 'age']๋ 0๋ฒ์งธ ํ์ age ์ปฌ๋ผ ๊ฐ์, df.iloc[0, 1]์ 0๋ฒ์งธ ํ์ 1๋ฒ์งธ ์ปฌ๋ผ ๊ฐ์ ์ ํ
10.
str(): ๋ฌธ์์ด ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ์ฌ์ฉ
- ์์: df['name'].str.upper()๋ name ์ปฌ๋ผ์ ๋ชจ๋ ๋ฌธ์์ด์ ๋๋ฌธ์๋ก ๋ณํ
์์
์๋ฃ ์์