๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Data analysis/๋ฐ์ดํ„ฐ ๋ถ„์„

Pandas ์‚ฌ์šฉ๋ฒ• - ๋ฐ์ดํ„ฐ ์„ ํƒ ๋ฐฉ๋ฒ• (iloc, loc, ์กฐ๊ฑด ์„ค์ •) [๊ธฐ๋ณธ]

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