๐Ÿ“’ Today I Learn/๐Ÿ Python

[Pandas] ์œ ์šฉํ•œ ํŒ๋‹ค์Šค ํ•จ์ˆ˜ (.loc / .groupby/ .idxmax)

ny:D 2024. 5. 5. 17:01

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)์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.