240430 Today I Learn
Pandas '.loc[]' ๋ฐ์ดํฐํ๋ ์์์ ํ ์กฐํํ๊ธฐ
๐ก dataframe.loc[ ํ ์ธ๋ฑ์ฑ ๊ฐ, ์ด ์ธ๋ฑ์ฑ ๊ฐ]
- ๋ผ๋ฒจ๋ก ์ธ๋ฑ์ฑ, ๋๋ฒํธ ํฌํจ
- ์ฌ๋ผ์ด์ฑ ๊ฐ๋ ์ ์ฉ ๊ฐ๋ฅ
โถ๏ธ ํ์ฉ ์์ ) ๊ฐ์ฅ ๋ง์ ๊ฐ์กฑ์ ๊ฐ์ง ์น๊ฐ ์ฐพ๊ธฐ
family = df['SibSp']+df['Parch']
name = ''
for i, k in enumerate(family):
if k == max(family):
print(df.loc[i]['Name'])
## Sage, Master. Thomas Henry
## Sage, Miss. Constance Gladys
## Sage, Mr. Frederick
## Sage, Mr. George John Jr
## Sage, Miss. Stella Anna
## Sage, Mr. Douglas Bullen
## Sage, Miss. Dorothy Edith "Dolly"
- family์ ์๊ฐ ๊ฐ์ฅ ๋ง์ max(family)์ ๊ฒฝ์ฐ df์์ ํด๋น ๋ฐ์ดํฐ์ ํ`i`์ ๊ตฌํ ํ
- ํด๋น ํ์์ `Name`์ปฌ๋ผ์ ์ ํํด์ฃผ๋ฉด, ๊ฐ์ฅ ๋ง์ ๊ฐ์กฑ์ ๊ฐ์ง ์น๊ฐ์ ์ด๋ฆ์ ์ถ๋ ฅํ ์ ์๋ค.
Pandas '.groupby()'๋ฅผ ์ด์ฉํ ์ง๊ณ
๐ก dataframe.groupby(๊ทธ๋ฃน์ด๋๋์ปฌ๋ผ)[๊ณ์ฐํ๊ณ ์ถ์ ์ปฌ๋ผ].์ง๊ณํจ์()
- ์ง๊ณํจ์ : sum, count, mean, max, min
โถ๏ธ ํ์ฉ ์์ ) ์ฑ๋ณ์ ๋ฐ๋ฅธ ์์กด์ ์ ๊ณ์ฐ
df.groupby('Sex')['Survived'].sum()
## Sex
## female 0.74
## male 0.19
- sex : female, male
- survived : 0(dead), 1(survived)
- ์ฑ๋ณ๋ก ๊ทธ๋ฃนํ๋ฅผ ํ๊ณ , ๊ฐ๊ฐ์ ์ฑ๋ณ์์ 'survived'๋ฅผ ๋ชจ๋ ํฉํ๋ฉด ์ฑ๋ณ๋ณ ์์กด์ ์๋ฅผ ๊ตฌํ ์ ์๋ค.
Pandas idxmax(), idxmin() ์ต๋/์ต์๊ฐ์ด ํฌํจ๋ ํ/์ด ๊ตฌํ๊ธฐ
๐ก dataframe.idxmax(axis=0, skipna=True)
- axis : {0 : ํ / 1:์ด } ๊ธฐ์ค์ด ๋ ์ถ
- skipna : ๊ฒฐ์ธก์น ๋ฌด์ ์ฌ๋ถ. True๋ฉด ๊ฒฐ์ธก์น๊ฐ ํฌํจ๋ ์ด์ ๋ฌด์ํ๊ณ False๋ฉด NaN๋ฅผ ์ถ๋ ฅ
โถ๏ธ ํ์ฉ ์์ ) ๊ฐ์ฅ ๋ง์ ํ์น๊ฐ ์๋ฅผ ๊ฐ์ง ์ ์ค ๋ฑ๊ธ ์ฐพ๊ธฐ
grouped = df.groupby('Pclass')['Name'].count()
## Pclass
## 1 216
## 2 184
## 3 491
pclass=grouped.idxmax()
print(f"๊ฐ์ฅ ๋ง์ ํ์น๊ฐ์ด ์ด์ฉํ ์ ์ค ๋ฑ๊ธ์ {pclass}๋ฑ๊ธ ์
๋๋ค.")
## ๊ฐ์ฅ ๋ง์ ํ์น๊ฐ์ด ์ด์ฉํ ์ ์ค ๋ฑ๊ธ์ 3๋ฑ๊ธ ์
๋๋ค.
- ์ ์ค๋ฑ๊ธ `Pclass`๋ฅผ ๊ธฐ์ค์ผ๋ก name์ ์๋ฅผ countํด grouped์ ์ ์ฅ
- grouped์์ ์ต๋๊ฐ์ด ํฌํจ๋ ํ(์ด ๊ฒฝ์ฐ 3)์ ๋ฐํํ๋ค.
'๐ Today I Learn > ๐ Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋ฉด ์ ์ฉํ ํ์ด์ฌ ๋ฌธ๋ฒ (2) ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ , lambda (0) | 2024.05.07 |
---|---|
์๋ฉด ์ ์ฉํ ํ์ด์ฌ ๋ฌธ๋ฒ (1) ํ์ด์ฌ ํ์ผ ์ ์ฅํ๊ธฐ, ํจํค์ง ์ฌ์ฉํ๊ธฐ, ํฌ๋งทํ (1) | 2024.05.07 |
[๊ฐ์ธ ๊ณผ์ ] ํ์ดํ๋ ๋ฌธ์ ํ์ด (1) (0) | 2024.05.06 |
ํ์ด์ฌ ํจ์ (2) ๋งค๊ฐ๋ณ์ vs. ์ธ์ (0) | 2024.05.05 |
ํ์ด์ฌ ํจ์ (1) ์ ์ญ๋ณ์ vs. ์ง์ญ๋ณ์ (0) | 2024.05.05 |