data = {
'์ด๋ฆ' : ['์ฑ์น์', '์ ๋๋ง', '์กํ์ญ', '์ํ์
', '๊ฐ๋ฐฑํธ', '๋ณ๋๊ท', 'ํฉํ์ฐ', '์ค๋ํ'],
'ํ๊ต' : ['๋ถ์ฐ๊ณ ', '๋ถ์ฐ๊ณ ', '๋ถ์ฐ๊ณ ', '๋ถ์ฐ๊ณ ', '๋ถ์ฐ๊ณ ', '๋ฅ๋จ๊ณ ', '๋ฅ๋จ๊ณ ', '๋ฅ๋จ๊ณ '],
'ํค' : [197, 184, 168, 187, 188, 202, 188, 190],
'๊ตญ์ด' : [90, 40, 80, 40, 15, 80, 55, 100],
'์์ด' : [85, 35, 75, 60, 20, 100, 65, 85],
'์ํ' : [100, 50, 70, 70, 10, 95, 45, 90],
'๊ณผํ' : [95, 55, 80, 75, 35, 85, 40, 95],
'์ฌํ' : [85, 25, 75, 80, 10, 80, 35, 95],
'SWํน๊ธฐ' : ['Python', 'Java', 'Javascript', '', '', 'C', 'PYTHON', 'C#']
}
df = pd.DataFrame(data,index =['1๋ฒ','2๋ฒ','3๋ฒ','4๋ฒ','5๋ฒ','6๋ฒ','7๋ฒ','8๋ฒ'])
df.index.name = '์ง์๋ฒํธ'
์ด์ ๊ฒ์๊ธ์์๋ ์ด์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ์ง๋ง, ์ด๋ฒ์๋ ํ์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์.
ํ์ ์ ํํ๋ ๋ฐฉ๋ฒ์๋ ์ธ๋ฑ์ค ์ด๋ฆ์ ์ ํํ๋ ๋ฐฉ๋ฒ๊ณผ ์ซ์๋ก ์ ํํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
loc (location)
>>> df.loc['1๋ฒ'] #index 1๋ฒ์ ํด๋นํ๋ ์ ์ฒด ๋ฐ์ดํฐ
์ด๋ฆ ์ฑ์น์
ํ๊ต ๋ถ์ฐ๊ณ
ํค 197
๊ตญ์ด 90
์์ด 85
์ํ 100
๊ณผํ 95
์ฌํ 85
SWํน๊ธฐ Python
Name: 1๋ฒ, dtype: object
>>> df.loc['5๋ฒ'] #index 5๋ฒ์ ํด๋นํ๋ ์ ์ฒด ๋ฐ์ดํฐ
์ด๋ฆ ๊ฐ๋ฐฑํธ
ํ๊ต ๋ถ์ฐ๊ณ
ํค 188
๊ตญ์ด 15
์์ด 20
์ํ 10
๊ณผํ 35
์ฌํ 10
SWํน๊ธฐ NaN
Name: 5๋ฒ, dtype: object
loc๋ location์ ๋ํ๋ด๋ฉฐ index๋ช ์ ์ ๋ ฅํ์ฌ ์ ํํ๋ค. index ์ ์ฒด๋ฅผ ํฌํจํ ์๋ ์์ง๋ง, index์ ํฌํจ๋ element ํ๊ฐ๋ง ์ ํํ ์๋ ์๋ค.
>>> df.loc['1๋ฒ','๊ตญ์ด'] #index 1๋ฒ์ ํด๋นํ๋ ๊ตญ์ด ๋ฐ์ดํฐ
90
>>> df.loc[['1๋ฒ','2๋ฒ'],'์์ด'] #1๋ฒ 2๋ฒ ์ธ๋ฑ์ค์ ํด๋นํ๋ ์์ด ๋ฐ์ดํฐ
์ง์๋ฒํธ
1๋ฒ 85
2๋ฒ 35
Name: ์์ด, dtype: int64
>>> df.loc[['1๋ฒ','5๋ฒ'],['์์ด','์ํ']] #index 1๋ฒ,5๋ฒ์ ํด๋นํ๋ ์์ด,์ํ ๋ฐ์ดํฐ
์์ด ์ํ
์ง์๋ฒํธ
1๋ฒ 85 100
5๋ฒ 20 10
>>> df.loc['1๋ฒ':'5๋ฒ','๊ตญ์ด':'์ฌํ'] #1๋ฒ๋ถํฐ 5๋ฒ๊น์ง, ๊ตญ์ด๋ถํฐ ์ฌํ๊น์ง ๋ฐ์ดํฐ
๊ตญ์ด ์์ด ์ํ ๊ณผํ ์ฌํ
์ง์๋ฒํธ
1๋ฒ 90 85 100 95 85
2๋ฒ 40 35 50 55 25
3๋ฒ 80 75 70 80 75
4๋ฒ 40 60 70 75 80
5๋ฒ 15 20 10 35 10
iloc (integer location)
iloc๋ integer location์ ๋ํ๋ด๋ฉฐ ์ซ์๋ก ์ ๊ทผํ ์ ์๋ค.
>>> df.iloc[0] #0๋ฒ์งธ row์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ด
์ด๋ฆ ์ฑ์น์
ํ๊ต ๋ถ์ฐ๊ณ
ํค 197
๊ตญ์ด 90
์์ด 85
์ํ 100
๊ณผํ 95
์ฌํ 85
SWํน๊ธฐ Python
Name: 1๋ฒ, dtype: object
>>> df.iloc[4] #4๋ฒ์งธ ์์น์ ๋ฐ์ดํฐ
์ด๋ฆ ๊ฐ๋ฐฑํธ
ํ๊ต ๋ถ์ฐ๊ณ
ํค 188
๊ตญ์ด 15
์์ด 20
์ํ 10
๊ณผํ 35
์ฌํ 10
SWํน๊ธฐ NaN
Name: 5๋ฒ, dtype: object
>>> df.iloc[0:5] #0~4๋ฒ์งธ ์์น์ ๋ฐ์ดํฐ
์ด๋ฆ ํ๊ต ํค ๊ตญ์ด ์์ด ์ํ ๊ณผํ ์ฌํ SWํน๊ธฐ
์ง์๋ฒํธ
1๋ฒ ์ฑ์น์ ๋ถ์ฐ๊ณ 197 90 85 100 95 85 Python
2๋ฒ ์ ๋๋ง ๋ถ์ฐ๊ณ 184 40 35 50 55 25 Java
3๋ฒ ์กํ์ญ ๋ถ์ฐ๊ณ 168 80 75 70 80 75 Javascript
4๋ฒ ์ํ์
๋ถ์ฐ๊ณ 187 40 60 70 75 80 NaN
5๋ฒ ๊ฐ๋ฐฑํธ ๋ถ์ฐ๊ณ 188 15 20 10 35 10 NaN
>>> df.iloc[0,1]#0๋ฒ์งธ row์ 1๋ฒ์งธ(ํ๊ต) ๋ฐ์ดํฐ
๋ถ์ฐ๊ณ
>>> df.iloc[4][2] #5๋ฒํ์(4๋ฒ์งธ row)์ ํค ๋ฐ์ดํฐ
188
>>> df.iloc[[0,1],2] #0,1๋ฒ์งธ ์์น์ ํ์์ 2๋ฒ์งธ(ํค) ๋ฐ์ดํฐ
df.iloc[[0,1],2] #0,1๋ฒ์งธ ์์น์ ํ์์ 2๋ฒ์งธ(ํค) ๋ฐ์ดํฐ
์ง์๋ฒํธ
1๋ฒ 197
2๋ฒ 184
Name: ํค, dtype: int64
>>> df.iloc[[0,1],[3,4]] #0,1๋ฒ์งธ ์์น์ ํ์์ 3,4๋ฒ์งธ ๋ฐ์ดํฐ
๊ตญ์ด ์์ด
์ง์๋ฒํธ
1๋ฒ 90 85
2๋ฒ 40 35
>>> df.iloc[0:5,3:8] #0~4๋ฒ์งธ ์์น์ ํ์ ์ค์์, 3~7๋ฒ์งธ ๋ฐ์ดํฐ (๊ตญ์ด:์ฌํ)
๊ตญ์ด ์์ด ์ํ ๊ณผํ ์ฌํ
์ง์๋ฒํธ
1๋ฒ 90 85 100 95 85
2๋ฒ 40 35 50 55 25
3๋ฒ 80 75 70 80 75
4๋ฒ 40 60 70 75 80
5๋ฒ 15 20 10 35 10
๋ฐ์ดํฐ ์ ํ (์กฐ๊ฑด)
๋ฐ์ดํฐ๋ฅผ ๋ฝ์ ๋ ์์ ์ด ์ํ๋ ์กฐ๊ฑด์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฝ์ ์๋ ์๋ค.
>>> df['ํค']>=185 #ํ์๋ค์ ํค๊ฐ 185์ด์์ธ์ง ์ฌ๋ถ๋ฅผ True/false
์ง์๋ฒํธ
1๋ฒ True
2๋ฒ False
3๋ฒ False
4๋ฒ True
5๋ฒ True
6๋ฒ True
7๋ฒ True
8๋ฒ True
Name: ํค, dtype: bool
>>> filt = (df['ํค'] >= 185)
>>> df[filt]
์ด๋ฆ ํ๊ต ํค ๊ตญ์ด ์์ด ์ํ ๊ณผํ ์ฌํ SWํน๊ธฐ
์ง์๋ฒํธ
1๋ฒ ์ฑ์น์ ๋ถ์ฐ๊ณ 197 90 85 100 95 85 Python
4๋ฒ ์ํ์
๋ถ์ฐ๊ณ 187 40 60 70 75 80 NaN
5๋ฒ ๊ฐ๋ฐฑํธ ๋ถ์ฐ๊ณ 188 15 20 10 35 10 NaN
6๋ฒ ๋ณ๋๊ท ๋ฅ๋จ๊ณ 202 80 100 95 85 80 C
7๋ฒ ํฉํ์ฐ ๋ฅ๋จ๊ณ 188 55 65 45 40 35 PYTHON
8๋ฒ ์ค๋ํ ๋ฅ๋จ๊ณ 190 100 85 90 95 95 C#
>>> df[~filt] #filter ๋ฅผ ์ญ์ผ๋ก ์ ์ฉ (not)
์ด๋ฆ ํ๊ต ํค ๊ตญ์ด ์์ด ์ํ ๊ณผํ ์ฌํ SWํน๊ธฐ
์ง์๋ฒํธ
2๋ฒ ์ ๋๋ง ๋ถ์ฐ๊ณ 184 40 35 50 55 25 Java
3๋ฒ ์กํ์ญ ๋ถ์ฐ๊ณ 168 80 75 70 80 75 Javascript
>>> df[df['ํค'] >= 185]
์ด๋ฆ ํ๊ต ํค ๊ตญ์ด ์์ด ์ํ ๊ณผํ ์ฌํ SWํน๊ธฐ
์ง์๋ฒํธ
1๋ฒ ์ฑ์น์ ๋ถ์ฐ๊ณ 197 90 85 100 95 85 Python
4๋ฒ ์ํ์
๋ถ์ฐ๊ณ 187 40 60 70 75 80 NaN
5๋ฒ ๊ฐ๋ฐฑํธ ๋ถ์ฐ๊ณ 188 15 20 10 35 10 NaN
6๋ฒ ๋ณ๋๊ท ๋ฅ๋จ๊ณ 202 80 100 95 85 80 C
7๋ฒ ํฉํ์ฐ ๋ฅ๋จ๊ณ 188 55 65 45 40 35 PYTHON
8๋ฒ ์ค๋ํ ๋ฅ๋จ๊ณ 190 100 85 90 95 95 C#
>>> df.loc[df['ํค']>=185,'์ํ']
์ง์๋ฒํธ
1๋ฒ 100
4๋ฒ 70
5๋ฒ 10
6๋ฒ 95
7๋ฒ 45
8๋ฒ 90
Name: ์ํ, dtype: int64
>>> df.loc[df['ํค']>= 185,['์ํ','๊ณผํ']] #ํค๊ฐ 185์ด์์ธ ํ์๋ค์ ์ด๋ฆ ์ํ ๊ณผํ ๋ฐ์ดํฐ
์ํ ๊ณผํ
์ง์๋ฒํธ
1๋ฒ 100 95
4๋ฒ 70 75
5๋ฒ 10 35
6๋ฒ 95 85
7๋ฒ 45 40
8๋ฒ 90 95
๋ค์ํ ์กฐ๊ฑด
>>> # & ๊ทธ๋ฆฌ๊ณ
>>> df.loc[(df['ํค']>=185) & (df['ํ๊ต']=='๋ถ์ฐ๊ณ ')] #ํค๊ฐ 185 ์ด์์ธ ๋ถ์ฐ๊ณ ํ์ ๋ฐ์ดํฐ
์ด๋ฆ ํ๊ต ํค ๊ตญ์ด ์์ด ์ํ ๊ณผํ ์ฌํ SWํน๊ธฐ
์ง์๋ฒํธ
1๋ฒ ์ฑ์น์ ๋ถ์ฐ๊ณ 197 90 85 100 95 85 Python
4๋ฒ ์ํ์
๋ถ์ฐ๊ณ 187 40 60 70 75 80 NaN
5๋ฒ ๊ฐ๋ฐฑํธ ๋ถ์ฐ๊ณ 188 15 20 10 35 10 NaN
>>> #| ๋๋
>>> df.loc[(df['ํค']<170) | (df['ํค']>200)]
์ด๋ฆ ํ๊ต ํค ๊ตญ์ด ์์ด ์ํ ๊ณผํ ์ฌํ SWํน๊ธฐ
์ง์๋ฒํธ
3๋ฒ ์กํ์ญ ๋ถ์ฐ๊ณ 168 80 75 70 80 75 Javascript
6๋ฒ ๋ณ๋๊ท ๋ฅ๋จ๊ณ 202 80 100 95 85 80 C
>>> #strํจ์
>>> filt = df['์ด๋ฆ'].str.startswith('์ก') #์ก์จ ์ฑ์ ๊ฐ์ง์ฌ๋
>>> df[filt]
์ด๋ฆ ํ๊ต ํค ๊ตญ์ด ์์ด ์ํ ๊ณผํ ์ฌํ SWํน๊ธฐ
์ง์๋ฒํธ
3๋ฒ ์กํ์ญ ๋ถ์ฐ๊ณ 168 80 75 70 80 75 Javascript
>>> filt = df['์ด๋ฆ'].str.contains('ํ') #์ด๋ฆ์ 'ํ'๊ฐ ๋ค์ด๊ฐ๋ ์ฌ๋
>>> df[filt]
์ด๋ฆ ํ๊ต ํค ๊ตญ์ด ์์ด ์ํ ๊ณผํ ์ฌํ SWํน๊ธฐ
์ง์๋ฒํธ
3๋ฒ ์กํ์ญ ๋ถ์ฐ๊ณ 168 80 75 70 80 75 Javascript
4๋ฒ ์ํ์
๋ถ์ฐ๊ณ 187 40 60 70 75 80 NaN
7๋ฒ ํฉํ์ฐ ๋ฅ๋จ๊ณ 188 55 65 45 40 35 PYTHON
>>> df[~filt]
์ด๋ฆ ํ๊ต ํค ๊ตญ์ด ์์ด ์ํ ๊ณผํ ์ฌํ SWํน๊ธฐ
์ง์๋ฒํธ
1๋ฒ ์ฑ์น์ ๋ถ์ฐ๊ณ 197 90 85 100 95 85 Python
2๋ฒ ์ ๋๋ง ๋ถ์ฐ๊ณ 184 40 35 50 55 25 Java
5๋ฒ ๊ฐ๋ฐฑํธ ๋ถ์ฐ๊ณ 188 15 20 10 35 10 NaN
6๋ฒ ๋ณ๋๊ท ๋ฅ๋จ๊ณ 202 80 100 95 85 80 C
8๋ฒ ์ค๋ํ ๋ฅ๋จ๊ณ 190 100 85 90 95 95 C#
>>> langs = ["Python","Java"]
>>> filt = df['SWํน๊ธฐ'].isin(langs) #SWํน๊ธฐ๊ฐ Python์ด๊ฑฐ๋ JAva์ธ ์ฌ๋
>>> df[filt]
์ด๋ฆ ํ๊ต ํค ๊ตญ์ด ์์ด ์ํ ๊ณผํ ์ฌํ SWํน๊ธฐ
์ง์๋ฒํธ
1๋ฒ ์ฑ์น์ ๋ถ์ฐ๊ณ 197 90 85 100 95 85 Python
2๋ฒ ์ ๋๋ง ๋ถ์ฐ๊ณ 184 40 35 50 55 25 Java
>>> langs = ['python','java']
>>> filt = df['SWํน๊ธฐ'].str.lower().isin(langs)
>>> df[filt]
์ด๋ฆ ํ๊ต ํค ๊ตญ์ด ์์ด ์ํ ๊ณผํ ์ฌํ SWํน๊ธฐ
์ง์๋ฒํธ
1๋ฒ ์ฑ์น์ ๋ถ์ฐ๊ณ 197 90 85 100 95 85 Python
2๋ฒ ์ ๋๋ง ๋ถ์ฐ๊ณ 184 40 35 50 55 25 Java
7๋ฒ ํฉํ์ฐ ๋ฅ๋จ๊ณ 188 55 65 45 40 35 PYTHON
>>> filt = df['SWํน๊ธฐ'].str.contains('Java')
>>> print(filt) #4๋ฒ๊ณผ 5๋ฒ๋๋ฌธ์ NaN๊ฐ์ ์ฒ๋ฆฌํด์ค์ผํจ
>>> df['SWํน๊ธฐ'].str.contains('Java',na=False) #NaN๋ฐ์ดํฐ์ ๋ํด์ False ๋ก ์ค์
์ง์๋ฒํธ
1๋ฒ False
2๋ฒ True
3๋ฒ True
4๋ฒ NaN
5๋ฒ NaN
6๋ฒ False
7๋ฒ False
8๋ฒ False
Name: SWํน๊ธฐ, dtype: object
์ง์๋ฒํธ
1๋ฒ False
2๋ฒ True
3๋ฒ True
4๋ฒ False
5๋ฒ False
6๋ฒ False
7๋ฒ False
8๋ฒ False
Name: SWํน๊ธฐ, dtype: bool
>>> filt = df['SWํน๊ธฐ'].str.contains('Java',na=False) #NaN๋ฐ์ดํฐ์ ๋ํด์ False ๋ก ์ค์
>>> df[filt]
์ด๋ฆ ํ๊ต ํค ๊ตญ์ด ์์ด ์ํ ๊ณผํ ์ฌํ SWํน๊ธฐ
์ง์๋ฒํธ
2๋ฒ ์ ๋๋ง ๋ถ์ฐ๊ณ 184 40 35 50 55 25 Java
3๋ฒ ์กํ์ญ ๋ถ์ฐ๊ณ 168 80 75 70 80 75 Javascript
728x90
'Data analysis > ๋ฐ์ดํฐ ๋ถ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Pandas ์ฌ์ฉ๋ฒ - ํจ์์ ์ฉ, ๊ทธ๋ฃนํ [๊ธฐ๋ณธ] (0) | 2022.01.22 |
---|---|
Pandas ์ฌ์ฉ๋ฒ - ๊ฒฐ์ธก์น ์ฒ๋ฆฌ, ๋ฐ์ดํฐ ์ ๋ ฌ ๋ฐ ์์ [๊ธฐ๋ณธ] (0) | 2022.01.21 |
Pandas ์ฌ์ฉ๋ฒ - ๋ฐ์ดํฐ์์ ์ ๋ณด ํ์ธํ๊ธฐ [๊ธฐ๋ณธ] (0) | 2022.01.17 |
Pandas ์ฌ์ฉ๋ฒ - ํ์ผ ์ ์ฅ ๋ฐ ์ด๊ธฐ [๊ธฐ๋ณธ] (0) | 2022.01.15 |
Pandas ์ฌ์ฉ๋ฒ - Series์ DataFrame [๊ธฐ๋ณธ] (0) | 2022.01.15 |