Filtering- ๋ด๊ฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํด์ ๋ณด๊ฒ ๋ค
sorting- ์ ๋ ฌ
type(df) - ๊ฐ์ฒด์ ํ์ ํ์ธ
df.loc[df['quantity']==3].head().reset_index(drop=True)
โช๏ธ drop=True-๊ณผ๊ฑฐ์ ์ธ๋ฑ์ค๋ค์ ์ญ์ ํด์ค๋ค.
โช๏ธ ํน์ ์ปฌ๋ผ๋ง ๊ฐ์ ธ์์ ํ ์ด๋ธ์ ๊พธ๋ฆฌ๊ณ ์ถ์ ๋
df2 = df[['quantity','item_price']]
df2.head()
โช๏ธ '$'๊ฐ ๋ค์ด๊ฐ๋ฉด ๋ฌธ์์ด์ด ๋๋ค.
df['item_price'].str[0:3]
โช๏ธ 0๋ฒ์งธ ๊ฐ์ ๋ญ๊น '$'๋ฅผ ๊ฐ๋ฆฌํจ๋ค
df['new_price'] = df['item_price'].str[1:].astype('float')
Ans = df['new_price'].head()
Ans
โช๏ธ
1. '$'๊ฐ ๋ค์ด๊ฐ๋ฉด ๋ฌธ์์ด์ด ๋์ ๋์ค์ ๋ฐ์ดํฐ์์ ์ซ์์ ๋ฌธ์๋ฅผ ๊ณฑํ๋ ํํ๊ฐ ๋์ ์ค๋ฅ๊ฐ ๋๊ธฐ ๋๋ฌธ์ ์ ๊ฑฐ๋ฅผ ํด์ค๋ค.
2. new_price - ์๋ก์ด ์ปฌ๋ผ์ ๊ตฌ์ฑํ๊ธฐ ์ํด์๋ ๋ด๊ฐ ์ ์ ์์๋ ์ปฌ๋ผ ์ด๋ฆ์ ์ ํด์ค๋ค
3. astype - float ํ์ ์ผ๋ก ๋ง๋ค์ด์ค๋ค.
len(df[df['new_price'] <=5])
1652
โช๏ธ len - ๊ฐฏ์๋ฅผ ์ธ๊ฒ ๋ค๋ ๋ช
๋ น์ด
df.loc[df.item_name =='Chicken Salad Bowl'].reset_index(drop=True)
- df['new price'] ์ด๋ ๊ฒ ๊ฐ์ ธ์ฌ ์๋ ์๊ณ df.item_name ์ด๋ ๊ฒ ์ปฌ๋ผ ๊ฐ์ ๊ฐ์ ธ์ฌ ์๋ ์๋ค.
- 1์ ์ํฉ์ ๊ณต๋ฐฑ์ด ์๋ ์ปฌ๋ผ ๊ฐ์ ๊ฐ์ ธ์ฌ ๋ ์ฐ๊ณ 2๋ฒ์งธ๋ ๊ณต๋ฐฑ์ด ์๋ ์ปฌ๋ผ ๊ฐ์ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉ
- loc - ๊ฐ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ธ๋ฑ์ฑํ๋ค.
- 2๊ฐ์ง ์ด์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ค๊ณ ํ ๋๋ ๊ฐ์กฐ๊ฑด์ ์๊ดํธ๋ก ๋ ๋ฆฝ์ ์ผ๋ก ๋ฌถ์ด์ค์ผํ๋ค.
Ans = df.sort_values('new_price').reset_index(drop=True)
Ans.head(10)
โช๏ธ sorting์ ํฌ๊ฒ ์ค๋ฆ์ฐจ์๊ณผ ๋ด๋ฆผ์ฐจ์์ด ์๋ค.
sortingํ ๋๋ sort_values๋ผ๋ ๋ช
๋ น์ด ์ฌ์ฉ ๊ทธ๋ฆฌ๊ณ ๋ํดํธ๊ฐ ์ค๋ฆ์ฐจ์์ด๋ผ ํ ๋น ์ํด์ค๋ ๋๋ค.
- str.contains ๋ผ๋ ๋ช ๋ น์ด๋ฅผ ํตํด์ ๋ฌธ์๊ฐ ํฌํจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.
- ::2-์ง์๋ง ๊ฐ์ ธ์ค๊ฒ ๋ค๋ ๋ป
- ascending=False-๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ์ ํ๊ฒ ๋ค๋ ๋ป
- ์ธ๋ฑ์ฑํ๋ผ= ๋ฐ์ดํฐ๋ฅผ ์ฐพ์๋ผ, | = ๋๋
Ans = df.loc[(df.item_name =='Steak Salad') | (df.item_name =='Bowl')]
Ans = Ans.drop_duplicates('item_name',keep='last')
Ans.head()
โช๏ธ
- ๋ฐ์ดํฐ ํ๋ ์ํ ํ ํ-> ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ 2์ฐจ์ ๋ฐ์ดํฐ๋ก ๋ง๋ค๋ผ๋ ๋ง
- ์ฐ๋ฆฌ๊ฐ ๋ถ์ํด์ผ๋๋ ๋ฐ์ดํฐ ์ค์ ์ค๋ณต๋๋ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์๋๋ค.
๋๊ฐ์ ๋ฐ์ดํฐ์ธ๋ฐ ์ค๋ณต์ผ๋ก ๋ค์ด๊ฐ์ผ๋ก์จ ํด์์ ํ ๋ ๋ชจ๋ธ์ ๋ํ ์คํด๋ฅผ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์ ์ค๋ณต์ ๊ฑฐ๋ฅผ ํ๋ค.- drop_duplicates๋ก ์ค๋ณต์ ๊ฑฐ
- 'item_name' -์ด๊ฑธ ์ ์์ ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฒซ๋ฒ์งธ ๊ฐ์ ๋จ๊ธฐ๊ณ ์ค๋ณต์ ๊ฑฐ๋ฅผ ํ๋ค๋ ๋ป
- mean() - ํ๊ท ์ด๋ผ๋ ๋ช ๋ น์ด
- loc - ์ธ๋ฑ์ค์ ์์,์ปฌ๋ผ์ด ๋ช๋ฒ์งธ ์์นํด์๋์ง, ํ์ด ๋ช๋ฒ์งธ ์์น์ ์๋์ง์ ๋ํด์ ์ ๊ทผํ ๋ ์ด๋ค. -> ๊ทธ ๊ฐ์ ์ ๊ทผํ ๋ ๋ง์ด ์ด๋ค.
- isnull().sum() -ํ๋์ ์ปฌ๋ผ๋ช ์ ๋ํด์๋ง ์ถ๋ ฅ์ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ ๊ฒ ์จ์ค
- isnull() - ๋ ๊ฐ์ธ ์กฐ๊ฑด
list(Ans['choice_description'])[1]
[Clementine]
โช๏ธ list-ํ๋์ ๋ฆฌ์คํธ ํ์์ผ๋ก ํด์ ์ฒซ๋ฒ์งธ ๊ฐ์ ์ ๊ทผํด ๋ณธ ๊ฒ
Ans = df[df.choice_description.str.contains('Black')]
Ans.head()
โช๏ธ loc์ฐ๋ ๊ฑด ์ ํ์ด๋ค ํ๋์ ์กฐ๊ฑด์ ๋ง์กฑํ ๋๋ ์์จ๋ ๋๋ค.
- '~' -not์ด๋ผ๋ ๋ง
- str.startswith() - ~๋ก ์์ํ๋ ๊ฒ ์ฐพ๋ ๋ช ๋ น์ด
- str.len()-item name์ ๋จ์ด์ ๊ฐ์๋ฅผ ์ธ์ค(๊ณต๋ฐฑ ํฌํจ)
lst =[1.69, 2.39, 3.39, 4.45, 9.25, 10.98, 11.75, 16.98]
Ans = df.loc[df.new_price.isin(lst)]
display(Ans.head(3))
print(len(Ans))
โช๏ธ
- isin() -์์ ๋ฆฌ์คํธ์ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ฃผ๊ฒ ๋๋ฉด ์กฐ๊ฑด์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ค์ ํ๋ฒ์ ์ฐพ์์ค๋ค.
- display() - ๋ฐ์ดํฐ ํ๋ ์ํํด์ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํด์ฃผ๋ ๊ฒ
- display์ print๋ฅผ ๊ฐ์ด ์ฐ๊ฒ๋๋ฉด 1393์ด๋ผ๋ ํ ์คํธ๋ ์ถ๋ ฅ์ ํด๋ณผ ์๋ ์๊ณ ์ฐ๋ฆฌ๊ฐ ๋ณด๊ณ ์ถ์ ๋ฐ์ดํฐ ํ๋ ์๋ ํ๋ฒ์ ๋ณผ ์ ์๋ค.