์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- JavaScript
- ํ๋ค์ค
- serverless
- ์๋ฐ์คํฌ๋ฆฝํธ
- Matplotlib ๊ธฐ์ด
- ์๋ฐํ๋ก๊ทธ๋๋ฐ
- ํ์ด์ฌ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์๋ฐ๊ณต๋ถ
- ์น๋์๋ณด๋ ์ ์
- Streamlit๊ธฐ๋ณธ
- db
- RESTful API
- ํ๋ค์ค๊ณต๋ถ
- ์๋ฐ
- java
- streamlit
- ์๋ฐ์คํฌ๋ฆฝํธ ๊ณต๋ถ
- ์คํธ๋ฆผ๋ฆฟ ๊ธฐ๋ณธ
- ์น๋์๋ณด๋ ๊ธฐ์ด
- MySQL
- Streamlit๊ธฐ์ด
- Pandas
- ์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ
- ์คํธ๋ฆผ๋ฆฟ
- ์๋๋ก์ด๋ ์คํ๋์ค
- ์๋ฐ๊ธฐ์ด
- ์๋ฐ์ด๋ณด
- ํ์ด์ฌ๊ณต๋ถ
- Android
- Today
- Total
ruriruriya
[Python] ํ์ด์ฌ ํ๋ค์ค(Pandas) - ๋ค์ค ์กฐ๊ฑด์ ๋ฐ์ดํฐ ๊ฐ๊ณผ ํ ๊ฐ์ ธ์ค๊ธฐ ๋ณธ๋ฌธ
[Python] ํ์ด์ฌ ํ๋ค์ค(Pandas) - ๋ค์ค ์กฐ๊ฑด์ ๋ฐ์ดํฐ ๊ฐ๊ณผ ํ ๊ฐ์ ธ์ค๊ธฐ
๋ฃจ๋ฆฌ์ผใ 2023. 11. 17. 11:19
ํ๋ค์ค์์ ๋ค์ค ์กฐ๊ฑด์ผ๋ก ๋ฐ์ดํฐ ๊ฐ์ ํํฐ๋งํ๊ณ ์ํ๋ ํ์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์๋ค. ๊ฐ์ฅ ํํ ๋ฐฉ๋ฒ ์ค ํ๋๋ loc ๋๋ iloc๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ํ์ ์ ํํ๋ ๊ฒ์ด๋ค.
์๋์ ๋ฐ์ดํฐ ํ๋ ์์ผ๋ก ๋ค์ค์กฐ๊ฑด ํํฐ๋ง์ ํด๋ณด์.
>> df = pd.DataFrame({'Employee ID':[111, 222, 333, 444],
'Employee Name':['Chanel', 'Steve', 'Mitch', 'Bird'],
'Salary [$/h]':[35, 29, 38, 20],
'Years of Experience':[3, 4 ,9, 1]})
>> df
ํ๋ค์ค์ ๋น๊ต์ฐ์ฐ์
์ฐ์ ํ๋ค์ค๋ ํ์ด์ฌ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ๋ฐ ๋น๊ต์ฐ์ฐ์๋ ์กฐ๊ธ ๋ค๋ฅธ ์ ์ ์ธ์งํ๊ณ ์ฌ์ฉํด์ผ ํ๋ค.
- ๋๋ฑ ๋น๊ต
- ==: ๊ฐ์ด ๊ฐ์์ง ํ์ธํ๋ค.
- !=: ๊ฐ์ด ๋ค๋ฅธ์ง ํ์ธํ๋ค .
- ๋ถ๋ฑํธ ๋น๊ต
- >: ํฌ๋ค๋ฅผ ํ์ธํ๋ค .
- <: ์๋ค๋ฅผ ํ์ธํ๋ค .
- >=: ํฌ๊ฑฐ๋ ๊ฐ๋ค๋ฅผ ํ์ธํ๋ค .
- <=: ์๊ฑฐ๋ ๊ฐ๋ค๋ฅผ ํ์ธํ๋ค .
- ๋
ผ๋ฆฌ ์ฐ์ฐ์
- &: ๋ ผ๋ฆฌ AND ์ฐ์ฐ์ ์ํํ๋ค .
- |: ๋ ผ๋ฆฌ OR ์ฐ์ฐ์ ์ํํ๋ค .
- ~: ๋ ผ๋ฆฌ NOT ์ฐ์ฐ์ ์ํํ๋ค.
- ๋ฉค๋ฒ์ญ(์ํจ) ์ฐ์ฐ์
- in: ๊ฐ์ด ์ปฌ๋ ์ ์ ์ํ๋์ง ํ์ธํ๋ค.
- not in: ๊ฐ์ด ์ปฌ๋ ์ ์ ์ํ์ง ์๋์ง ํ์ธํ๋ค.
1๊ฐ์ง ์กฐ๊ฑด์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
1๊ฐ์ง ์กฐ๊ฑด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ฉด Series ํํ๋ก ์ถ๋ ฅ๋๋ค.
# ๊ฒฝ๋ ฅ์ด 3๋
์ด์์ธ ์ฌ๋์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค์์ค.
>> df['Years of Experience'] >=3
0 True
1 True
2 True
3 False
Name: Years of Experience, dtype: bool
1๊ฐ์ง ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ํ์ ๋ชจ๋ ๊ฐ์ ธ์ค๊ณ ์ถ๋ค๋ฉด loc,iloc ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ ๊ฐ์ ธ์ฌ ์ ์๋ค.
>> df.loc[df['Years of Experience'] >=3,]
๋ค์ค์กฐ๊ฑด ๋ฐ์ดํฐ ํํฐ๋ง
๋
ผ๋ฆฌ ์ฐ์ฐ์๋ก ๋ค์ค ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ ๊ฐ๊ณผ ํ์ ๊ฐ์ ธ์ฌ ์ ์๋ค.
ํ๋ค์ค์์์ ๋ถ๋ฑ์์ ์กฐํฉํ ๋ ํ์ด์ฌ, ์๋ฐ ๋
ผ๋ฆฌ ์ฐ์ฐ์์ ๋ค๋ฅด๊ฒ ์ด๋ค.
๊ทธ๋ฆฌ๊ณ (AND)๋ '&', ๋๋(OR)๋ '|' ๋ฅผ ์ฌ์ฉํ๋ค.
๊ฒฝ๋ ฅ์ด 3๋ ์ดํ์ด๊ฑฐ๋ 8๋ ์ด์์ธ ์ฌ๋์ ์ด๋ฆ์ ๊ฐ์ ธ์ค์.
>> (df['Years of Experience'] <=3) | (df['Years of Experience'] >=8)
0 True
1 False
2 True
3 True
Name: Years of Experience, dtype: bool
>> df.loc[(df['Years of Experience'] >=3) | (df['Salary [$/h]']>=30),]
์กฐ๊ฑด์ ๋ง์กฑํ๋ ํด๋น ์ปฌ๋ผ๋ง ๊ฐ์ ธ์ค๊ธฐ
loc ํจ์๋ฅผ ํ์ฉํด ํ์๋ ์กฐ๊ฑด๋ฌธ๊ณผ, ์ด ๋ถ๋ถ์ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํด์ ๋๊ฐ์ง ์ด์์ ์ปฌ๋ผ๋ช ์ ๋ฃ๋๋ค.
์๊ธ์ด ๊ฐ์ฅ ๋์ ์ฌ๋์ ์ด๋ฆ๊ณผ ์๊ธ์ ๊ฐ์ ธ์ค์์ค.
>> df['Salary [$/h]'].max()
38
>> df['Salary [$/h]'] == df['Salary [$/h]'].max()
0 False
1 False
2 True
3 False
Name: Salary [$/h], dtype: bool
>> df.loc[df['Salary [$/h]'] == df['Salary [$/h]'].max(),['Employee Name','Salary [$/h]']]