9. 데이터 선택(조건)¶
In [1]:
import pandas as pd
In [2]:
data = {
'이름' : ['카이사', '나서스', '제이스', '르블랑', '시비르', '신지드', '쓰레쉬'],
'공격 속성' : ['ad', 'ad', 'ad', 'ap', 'ad', 'ap', 'ap'],
'학교' : ['잭스고', '마이고', '마이고', '조이고', '잭스고','조이고', '마이고'],
'1렙 ad' : [55, 61, 59, 51, 54, 57, 44],
'1렙 체력' : [500, 550, 510, 520, 530, 575, 545],
'1렙 방어력' : [30, 40, 33, 28, 30, 35, 33],
'1렙 마방' : [30, 42, 39, 33, 27, 35, 30],
'신화템' : ['철갑궁', '신성한 파괴자', '돌풍', '루덴의 메아리', '철갑궁', '영겁의 지팡이', '돌풍']
}
data # 딕셔너리 생성
lol = pd.DataFrame(data, index = ['1번', '2번', '3번', '4번', '5번', '6번', '7번'])
lol
Out[2]:
이름 | 공격 속성 | 학교 | 1렙 ad | 1렙 체력 | 1렙 방어력 | 1렙 마방 | 신화템 | |
---|---|---|---|---|---|---|---|---|
1번 | 카이사 | ad | 잭스고 | 55 | 500 | 30 | 30 | 철갑궁 |
2번 | 나서스 | ad | 마이고 | 61 | 550 | 40 | 42 | 신성한 파괴자 |
3번 | 제이스 | ad | 마이고 | 59 | 510 | 33 | 39 | 돌풍 |
4번 | 르블랑 | ap | 조이고 | 51 | 520 | 28 | 33 | 루덴의 메아리 |
5번 | 시비르 | ad | 잭스고 | 54 | 530 | 30 | 27 | 철갑궁 |
6번 | 신지드 | ap | 조이고 | 57 | 575 | 35 | 35 | 영겁의 지팡이 |
7번 | 쓰레쉬 | ap | 마이고 | 44 | 545 | 33 | 30 | 돌풍 |
In [3]:
lol['1렙 ad'] >= 55
Out[3]:
1번 True
2번 True
3번 True
4번 False
5번 False
6번 True
7번 False
Name: 1렙 ad, dtype: bool
변수를 정의해서 데이터 표현하기¶
In [4]:
op = lol['1렙 ad'] >= 55
lol[op] # lol 데이터를 갖고 오는데 위에 정의한 변수의 조건
Out[4]:
이름 | 공격 속성 | 학교 | 1렙 ad | 1렙 체력 | 1렙 방어력 | 1렙 마방 | 신화템 | |
---|---|---|---|---|---|---|---|---|
1번 | 카이사 | ad | 잭스고 | 55 | 500 | 30 | 30 | 철갑궁 |
2번 | 나서스 | ad | 마이고 | 61 | 550 | 40 | 42 | 신성한 파괴자 |
3번 | 제이스 | ad | 마이고 | 59 | 510 | 33 | 39 | 돌풍 |
6번 | 신지드 | ap | 조이고 | 57 | 575 | 35 | 35 | 영겁의 지팡이 |
In [5]:
op = (lol['1렙 ad'] >= 55)
lol[op]
Out[5]:
이름 | 공격 속성 | 학교 | 1렙 ad | 1렙 체력 | 1렙 방어력 | 1렙 마방 | 신화템 | |
---|---|---|---|---|---|---|---|---|
1번 | 카이사 | ad | 잭스고 | 55 | 500 | 30 | 30 | 철갑궁 |
2번 | 나서스 | ad | 마이고 | 61 | 550 | 40 | 42 | 신성한 파괴자 |
3번 | 제이스 | ad | 마이고 | 59 | 510 | 33 | 39 | 돌풍 |
6번 | 신지드 | ap | 조이고 | 57 | 575 | 35 | 35 | 영겁의 지팡이 |
In [6]:
lol[-op] # op의 조건이 아닌 것들을 보여줌
Out[6]:
이름 | 공격 속성 | 학교 | 1렙 ad | 1렙 체력 | 1렙 방어력 | 1렙 마방 | 신화템 | |
---|---|---|---|---|---|---|---|---|
4번 | 르블랑 | ap | 조이고 | 51 | 520 | 28 | 33 | 루덴의 메아리 |
5번 | 시비르 | ad | 잭스고 | 54 | 530 | 30 | 27 | 철갑궁 |
7번 | 쓰레쉬 | ap | 마이고 | 44 | 545 | 33 | 30 | 돌풍 |
변수를 사용하지 않고 표현하기¶
In [7]:
lol[lol['1렙 ad'] >= 55]
Out[7]:
이름 | 공격 속성 | 학교 | 1렙 ad | 1렙 체력 | 1렙 방어력 | 1렙 마방 | 신화템 | |
---|---|---|---|---|---|---|---|---|
1번 | 카이사 | ad | 잭스고 | 55 | 500 | 30 | 30 | 철갑궁 |
2번 | 나서스 | ad | 마이고 | 61 | 550 | 40 | 42 | 신성한 파괴자 |
3번 | 제이스 | ad | 마이고 | 59 | 510 | 33 | 39 | 돌풍 |
6번 | 신지드 | ap | 조이고 | 57 | 575 | 35 | 35 | 영겁의 지팡이 |
In [8]:
lol.loc[lol['1렙 ad'] >= 55, '1렙 체력'] # loc는 위치 (index선택 , column선택)
Out[8]:
1번 500
2번 550
3번 510
6번 575
Name: 1렙 체력, dtype: int64
In [9]:
lol.loc[lol['1렙 ad'] >= 55, ['이름', '1렙 체력']]
Out[9]:
이름 | 1렙 체력 | |
---|---|---|
1번 | 카이사 | 500 |
2번 | 나서스 | 550 |
3번 | 제이스 | 510 |
6번 | 신지드 | 575 |
'그리고' 조건과 '또는' 조건¶
In [10]:
lol.loc[(lol['1렙 ad'] >= 55) & (lol['학교'] == '마이고')]
Out[10]:
이름 | 공격 속성 | 학교 | 1렙 ad | 1렙 체력 | 1렙 방어력 | 1렙 마방 | 신화템 | |
---|---|---|---|---|---|---|---|---|
2번 | 나서스 | ad | 마이고 | 61 | 550 | 40 | 42 | 신성한 파괴자 |
3번 | 제이스 | ad | 마이고 | 59 | 510 | 33 | 39 | 돌풍 |
In [11]:
lol.loc[(lol['1렙 ad'] >= 57) | (lol['1렙 체력'] >= 550)]
Out[11]:
이름 | 공격 속성 | 학교 | 1렙 ad | 1렙 체력 | 1렙 방어력 | 1렙 마방 | 신화템 | |
---|---|---|---|---|---|---|---|---|
2번 | 나서스 | ad | 마이고 | 61 | 550 | 40 | 42 | 신성한 파괴자 |
3번 | 제이스 | ad | 마이고 | 59 | 510 | 33 | 39 | 돌풍 |
6번 | 신지드 | ap | 조이고 | 57 | 575 | 35 | 35 | 영겁의 지팡이 |
이름 바꾸기¶
In [12]:
lol.loc['1번','이름'] = '제드'
lol
Out[12]:
이름 | 공격 속성 | 학교 | 1렙 ad | 1렙 체력 | 1렙 방어력 | 1렙 마방 | 신화템 | |
---|---|---|---|---|---|---|---|---|
1번 | 제드 | ad | 잭스고 | 55 | 500 | 30 | 30 | 철갑궁 |
2번 | 나서스 | ad | 마이고 | 61 | 550 | 40 | 42 | 신성한 파괴자 |
3번 | 제이스 | ad | 마이고 | 59 | 510 | 33 | 39 | 돌풍 |
4번 | 르블랑 | ap | 조이고 | 51 | 520 | 28 | 33 | 루덴의 메아리 |
5번 | 시비르 | ad | 잭스고 | 54 | 530 | 30 | 27 | 철갑궁 |
6번 | 신지드 | ap | 조이고 | 57 | 575 | 35 | 35 | 영겁의 지팡이 |
7번 | 쓰레쉬 | ap | 마이고 | 44 | 545 | 33 | 30 | 돌풍 |
str함수¶
In [13]:
str = lol['이름'].str.startswith('제') # 이름에 '제'가 들어가는 사람
lol[str]
Out[13]:
이름 | 공격 속성 | 학교 | 1렙 ad | 1렙 체력 | 1렙 방어력 | 1렙 마방 | 신화템 | |
---|---|---|---|---|---|---|---|---|
1번 | 제드 | ad | 잭스고 | 55 | 500 | 30 | 30 | 철갑궁 |
3번 | 제이스 | ad | 마이고 | 59 | 510 | 33 | 39 | 돌풍 |
In [14]:
str = lol['이름'].str.contains('스') #이름에 '스'가 들어가는 사람
lol[str]
Out[14]:
이름 | 공격 속성 | 학교 | 1렙 ad | 1렙 체력 | 1렙 방어력 | 1렙 마방 | 신화템 | |
---|---|---|---|---|---|---|---|---|
2번 | 나서스 | ad | 마이고 | 61 | 550 | 40 | 42 | 신성한 파괴자 |
3번 | 제이스 | ad | 마이고 | 59 | 510 | 33 | 39 | 돌풍 |
In [18]:
myth = ['철갑궁', '돌풍'] # 신화템 리스트를 만들어 줌
item = lol['신화템'].isin(myth)
lol[item]
Out[18]:
이름 | 공격 속성 | 학교 | 1렙 ad | 1렙 체력 | 1렙 방어력 | 1렙 마방 | 신화템 | |
---|---|---|---|---|---|---|---|---|
1번 | 제드 | ad | 잭스고 | 55 | 500 | 30 | 30 | 철갑궁 |
3번 | 제이스 | ad | 마이고 | 59 | 510 | 33 | 39 | 돌풍 |
5번 | 시비르 | ad | 잭스고 | 54 | 530 | 30 | 27 | 철갑궁 |
7번 | 쓰레쉬 | ap | 마이고 | 44 | 545 | 33 | 30 | 돌풍 |
'데이터' 카테고리의 다른 글
데이터프레임 데이터정렬 (Data Frame sort_values, 데이터프레임 sort, DataFrame 정렬) (0) | 2023.01.05 |
---|---|
DataFrame loc, iloc ( 데이터 프레임 loc, iloc , pandas loc, iloc) (0) | 2023.01.01 |
DataFrame 만들기 ( 2차원 데이터 만들기, 데이터 프레임 만들기, pandas를 이용하여 데이터 가시화) (0) | 2023.01.01 |