ํน์ ๊ฐ์ด ์ต๋๊ฐ์ ๊ฐ์ง๋ ํ ์ถ์ถ
In [2]:
import pandas as pd
import numpy as np
import seaborn as sns
df = sns.load_dataset('titanic')
df.head()
Out[2]:
boolean indexing
์๋ฆฌ์ฆ ๊ฐ์ฒด์ ํน์ ์กฐ๊ฑด์์ ์ ์ฉํด ํด๋น ์กฐ๊ฑด์ ์ฐธ์ธ ํ(row)์ ์ถ์ถํ๊ธฐ ์ํด์ boolean indexing์ ์ด์ฉํ ์ ์๋ค.
๋ค์์ ์์ ๋ก ์ฑ๋ณ์ด ๋จ์ฑ์ด๋ฉด์ ์์กดํ ์ธ์์ ๋ํ ํ๋ค์ ์ถ์ถํด๋ณด์
In [19]:
condition = (df.sex == 'male') & (df.survived ==1) # ์กฐ๊ฑด์ ์์ฑ
df[condition]
Out[19]:
In [20]:
df.loc[condition] # loc๋ฅผ ์ด์ฉํด๋ ๋ฌด๋ฐฉํ๋ค.
Out[20]:
์ด๋ฒ์๋ or ์ฐ์ฐ์๋ฅผ ์ด์ฉํด pclass๊ฐ 1 ํน์ 2์ธ ํ๋ค์ ์ถ์ถํด๋ณด์.
In [28]:
condition = (df.pclass == 1) | (df.pclass == 2)
df.loc[condition, ['survived', 'sex', 'pclass']] # ํํฐ๋ง ๋ row์ ํน์ ์ปฌ๋ผ๋ง ์ถ์ถ
Out[28]:
isin()
sibsp๊ฐ 1, 2, 3์ ๊ฐ์ ๊ฐ๋ ๋ฐ์ดํฐ๋ง ์ถ์ถํ๊ธฐ ์ํด์ ์๋์ ๋ฐฉ๋ฒ์ฒ๋ผ boolean indexing์ ์ฌ์ฉํ ์ ์๋ค.
In [31]:
con1 = df['sibsp'] == 1
con2 = df['sibsp'] == 2
con3 = df['sibsp'] == 3
filtered_df = df.loc[con1 | con2 | con3, :]
filtered_df
Out[31]:
์์ฒ๋ผ ํน์ ํ ๋ฆฌ์คํธ ํํ์ ๊ฐ๋ค์ ํฌํจํ๋ ํ์ ์ถ์ถํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ด isin ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋์ฑ ๊ฐํธํ๋ค.
In [32]:
isin_con = df['sibsp'].isin([1, 2, 3])
df.loc[isin_con]
Out[32]:
'Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] Dataframe ๋ณํฉ (1) | 2024.10.17 |
---|---|
[Python] pd.cut ๊ณผ pd.qcut ๋น๊ต (0) | 2024.10.17 |
[Python] lambda (2) | 2024.10.16 |
[Python] map, apply, applymap (0) | 2024.10.16 |
[Python] ํผ๋ฒํ ์ด๋ธ (1) | 2024.10.16 |