# NaN์ ๊ฐ์ ์๋ฏธ
๋๋ฝ๋ ๊ฐ, ๋น์ด ์๋ ๊ฐ์ด๋ผ๋ ๋ป์ด๋ค

NaN ์์ ๋ฌ ๊ฐ์ฆ์.
# loc ์ฌ์ฉ์ ์ฃผ์ํ ์
df1.loc [ ์ซ์, ์ปฌ๋ผ๋ช ]
์ซ์, ์ปฌ๋ผ๋ช ๋ชจ๋ ํฌํจ
df1.iloc [ ์ซ์, ์ซ์ ]
์ซ์๋ถ๋ถ ๋ง์ง๋ง๋ถ๋ถ ํฌํจํ์ง ์๋๋ค
df1['Pclass']์
df1[ : , 'Pclass'] ๋ ๋์ผํ๋ค
# ns_df.loc[ : , ์กฐ๊ฑด ]
๋ชจ๋ ํ์ ์ ํํ๊ณ (ํ์ )
๊ทธ ํ ์กฐ๊ฑด์ ํด๋นํ๋ ์ด์ ์ ํํ๋ค
# ns_df.loc[ ์กฐ๊ฑด ]
์กฐ๊ฑด์ ํด๋นํ๋ ํ์ ์ ํํ๋ค
๋จผ์ ๋ชจ๋ ํ์ ์ ํํ๋ ๊ฒ์ด ์๋๋ค
[ ์กฐ๊ฑด์ ์ ]
ns_df.loc[ns_df['๋ฐํ๋
๋'] >= '2000']
[ ๊ฒฐ๊ณผ ]

ํ์ฌ ns_book์ด๋
root = "/content/drive/MyDrive/แแ
ฉแซแแ
ฉแผ แแ
ฆแแ
ตแแ
ฅแแ
ฎแซแแ
ฅแจ"
file_address = root + "/๋จ์ฐ๋์๊ด ์ฅ์ ๋์ถ๋ชฉ๋ก (2021๋
04์).csv"
import pandas as pd
df = pd.read_csv(file_address, encoding='EUC-KR', low_memory=False)
cond1 = df.columns != 'Unnamed: 13'
ns_book = df.loc[:, cond1]
ns_book.head()
# drop ๋ฉ์๋
์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์์ ์ญ์ ํ๋ ค๋ ์ด ์ด๋ฆ์ ์ ๋ฌํ๊ณ axis ๋งค๊ฐ๋ณ์๋ฅผ 1๋ก ์ง์ ํฉ๋๋ค
ns_book = ns_df.drop('Unnamed: 13', axis=1)
ns_book.head()
[ ๊ฒฐ๊ณผ ]

ํ ์ฌ๋ฌ๊ฐ ์ ๊ฑฐ ๊ฐ๋ฅ
ns_book = ns_df.drop(['๋ถ๊ฐ๊ธฐํธ', 'Unnamed: 13'], axis=1)
ns_book.head()
์๋ก์ด ๋ณ์ ns_book ์ ๋ด์ง ์๊ณ ๊ทธ๋๋ก ๋ณ์๋ฅผ ์ฌ์ฉํ ๋
inplace = True๋ฅผ ๋ถ์ฌ์ค๋ค
ns_book.drop('์ฃผ์ ๋ถ๋ฅ๋ฒํธ', axis=1, inplace=True)
ns_book.head()
# dropna() ๋ฉ์๋
ํ๋ค์ค๋ ๋น์ด์๋ ๊ฐ์ NaN์ผ๋ก ํ์ํ๋ค
dropna()๋ฉ์๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก NaN์ด ํ๋ ์ด์ ํฌํจ๋ ํ์ด๋ ์ด์ ์ญ์ ํ๋ค
axis๊ฐ 0์ธ๊ฒฝ์ฐ ํ์ ๋ํด์, axis๊ฐ 1์ธ๊ฒฝ์ฐ ์ด์ ๋ํด์ ๊ฒฐ์ธก์น ์ ๊ฑฐ๊ฐ ์ํ๋ฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก how ๋ 'any'์ด๋ฉฐ ์ด ๊ฒฝ์ฐ ํ ๊ฐ์ด๋ผ๋ NA๋ฅผ ๊ฐ์ง๋ค๋ฉด ํด๋น ๋ ์ด๋ธ์ ์ ๊ฑฐํฉ๋๋ค. (๊ธฐ์ค์ ํ์ ๋๋ค)
how๋ฅผ 'all'๋ก ํ ๊ฒฝ์ฐ ๋ชจ๋ ๊ฐ์ด NA์ธ ๋ ์ด๋ธ๋ง ์ญ์ ๋ฉ๋๋ค.
[ ์์ 1 ]
col = ['col1','col2','col3','col4','col5']
row = ['row1','row2','row3','row4']
data = [[1,2,3,pd.NA,5],[6,pd.NA,8,pd.NA,10],[11,12,13,14,15],[pd.NA,pd.NA,pd.NA,pd.NA,pd.NA]]
df = pd.DataFrame(data,row,col)
print(df)
>>
col1 col2 col3 col4 col5
row1 1 2 3 <NA> 5
row2 6 <NA> 8 <NA> 10
row3 11 12 13 14 15
row4 <NA> <NA> <NA> <NA> <NA>
[ ์ฝ๋1 ]
print(df.dropna(axis=0))
>>
col1 col2 col3 col4 col5
row3 11 12 13 14 15
print(df.dropna(axis=1))
>>
Empty DataFrame
Columns: []
Index: [row1, row2, row3, row4]
print(df.dropna(how='any'))
>>
col1 col2 col3 col4 col5
row3 11 12 13 14 15
print(df.dropna(how='all'))
>>
col1 col2 col3 col4 col5
row1 1 2 3 <NA> 5
row2 6 <NA> 8 <NA> 10
row3 11 12 13 14 15
[ ์ฝ๋ ]
ns_book = ns_df.dropna(axis=1)
ns_book.head()
[ ๊ฒฐ๊ณผ ]

# duplicated() ๋ฉ์๋
์ค๋ณต๋ ํ ์ฐพ๊ธฐ
์ค๋ณต๋ ํ ์ค์์ ์ฒ์ ํ์ ์ ์ธํ ๋๋จธ์ง ํ์ True๋ก, ๊ทธ ์ธ์ ์ค๋ณต๋์ง ์์ ๋๋จธ์ง ๋ชจ๋ ํ์ False๋ก ํ์ํ ๋ถ๋ฆฌ์ธ ๋ฐฐ์ด์ ๋ฐํํ๋ค
๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
df.duplicated(subset=None, keep='first')
subset : ํน์ ์ด๋ง์ ๋์์ผ๋ก ํ ์ ์์ต๋๋ค. list์ ์ฌ์ฉ๋ ๊ฐ๋ฅํฉ๋๋ค.
keep : {first : ์๋ถํฐ ๊ฒ์ฌ / last : ์๋๋ถํฐ ๊ฒ์ฌ} ๊ฒ์ฌ ์์๋ฅผ ์ ํฉ๋๋ค. first์ผ ๊ฒฝ์ฐ ์๋ถํฐ ํ์ธํด์ ์ค๋ณตํ์ด ๋์ค๋ฉด True๋ฅผ ๋ฐํํ๋ฉฐ, last์ผ ๊ฒฝ์ฐ ์๋๋ถํฐ ํ์ธํฉ๋๋ค.
ํ์ด์ฌ์ sum()ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด True๋ฅผ 1๋ก ์ธ์ํ๊ธฐ ๋๋ฌธ์ ์ค๋ณต๋ ํ์ ๊ฐ์๋ฅผ ์ ์ ์๋ค
[ ์ฝ๋ 1 ]
๊ทธ๋ฅ duplicated()๋ ๋ฐ์ดํฐํ๋ ์์ ์๋ ๋ชจ๋ ์ด์ ๊ธฐ์ค์ผ๋ก ์ค๋ณต๊ฐ์ ์ฐพ๋๋ค
sum(ns_book.duplicated())
[ ๊ฒฐ๊ณผ 1 ]
0
[ ์ฝ๋ 2 ]
์ผ๋ถ ์ด์ ๊ธฐ์ค์ผ๋ก ์ค๋ณต๊ฐ์ ์ฐพ์ ์ subset ๋งค๊ฐ๋ณ์์ ๊ธฐ์ค์ด์ ๋์ดํ๋ค
sum(ns_book.duplicated(subset=['๋์๋ช
', '์ ์', 'ISBN']))
[ ๊ฒฐ๊ณผ 2 ]
6610
# ๊ทธ๋ฃน๋ณ๋ก ๋ชจ์ผ๊ธฐ - groupby()
[ ์์ ]
idx=['A','A','B','B','B','C','C','C','D','D','D','D','E','E','E']
col=['col1','col2','col3']
data = np.random.randint(0,9,(15,3))
df = pd.DataFrame(data=data, index=idx, columns=col).reset_index()
print(df)
>>
index col1 col2 col3
0 A 5 0 7
1 A 2 6 2
2 B 1 1 8
3 B 1 6 6
4 B 3 2 3
5 C 1 0 8
6 C 8 4 1
7 C 1 5 5
8 D 3 3 7
9 D 5 7 7
10 D 1 6 5
11 D 4 0 0
12 E 0 5 6
13 E 2 7 7
14 E 0 7 0
[ ์์ ]
groupby ์ง์ ํ๊ธฐ
print(df.groupby('index')) # index ์ปฌ๋ผ์ ๋ํด์ groupby ์ํ
[ ๊ฒฐ๊ณผ ]
print(df.groupby('index').mean())
>>
col1 col2 col3
index
A 3.500000 3.000000 4.500000
B 1.666667 3.000000 5.666667
C 3.333333 3.000000 4.666667
D 3.250000 4.000000 4.750000
E 0.666667 6.333333 4.333333
# ํ ์ด๋ธ ์ค ์ปฌ๋ผ ์ฌ๋ฌ๊ฐ๋ง ์ผ๋ถ ์ถ์ถํ๊ธฐ
count_df = ns_book[['๋์๋ช
', '์ ์', 'ISBN', '๊ถ', '๋์ถ๊ฑด์']]
# Reference
02-11. ๊ทธ๋ฃนํ ๊ณ์ฐ (groupby)
####DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squee…
wikidocs.net
'Knowledge๐ฆข > ๋ฐ์ดํฐ ๋ถ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํผ๊ณต ๋ฐ์ดํฐ๋ถ์ 4] ์๋ชป๋ ๋ฐ์ดํฐ ์์ ํ๊ธฐ (2) - loc์ ๋ํด์, ๋ถ๋ฆฌ์ธ์ธ๋ฑ์ค (๋ณต์ตํ์โ๏ธ) (0) | 2024.05.02 |
|---|---|
| [ํผ๊ณต ๋ฐ์ดํฐ๋ถ์ 3] ์๋ชป๋ ๋ฐ์ดํฐ ์์ ํ๊ธฐ (1) | 2024.05.01 |
| [Pandas] ํ๋ค์ค iloc ์ฌ์ฉ๋ฐฉ๋ฒ (1) | 2024.05.01 |
| [Pandas] ํ๋ค์ค loc ๊ธฐ์ด ์ฌ์ฉ๋ฒ (1) | 2024.05.01 |
| [Pandas] ํ๋ค์ค ๊ธฐ์ด ์ฌ์ฉ๋ฒ(1) (1) | 2024.05.01 |