*파일은 제공하지 않습니다.
import pandas as pd
emp에 담는다.
emp = pd.read_csv('c:/~내가 설정한 폴더~/employees.csv')
# 폴더 창에서 복사하지 않고 직접 입력, c:/

emp.head(10)

emp[emp['SALARY'] > 10000]
# 샐러리가 10000 초과
emp[emp['SALARY'] > 10000]
월급 * 12 가 연봉 열이 될 것 이다.
emp['SALARY'] * 12 에 emp['연봉'] 을 대입한다.
# 연봉 컬럼 만들기: 샐러리 * 12
emp['연봉'] = emp['SALARY'] * 12
emp.head(10)

-사원번호: MPLOYEE_ID
-연봉: 연봉
-이름: FIRST_NAME , LAST_NAME
먼저 조건 없이 문제의 열만 확인해보자.
emp[['EMPLOYEE_ID', '연봉', 'FIRST_NAME', 'LAST_NAME']]

역시나 [] 대괄호로 두번 감싸면 결과가 나온다.
emp[emp['연봉'] >= 200000][['EMPLOYEE_ID', '연봉', 'FIRST_NAME', 'LAST_NAME']]
emp[조건식][[내가 원하는 열들]] 이런 식으로 작성하면 원하는 조건에 맞춘 열들만 추출 가능하다.
큰 대괄호가 2개 들어간다.
(안에 들어가는 내용은 어떤 것을 요청하느냐에 따라 대괄호가 늘어날 수 있음에 주의하자.)
여기서 emp는 내가 붙인 데이터프레임 이름이다.

연봉이 20000 ~ 250000 사이의 사원번호, 연봉, 이름을 출력한다.
emp[(emp['연봉'] >= 200000) & (emp['연봉'] <= 250000) ][['EMPLOYEE_ID', '연봉', 'FIRST_NAME', 'LAST_NAME']]

**(1) 조건식 먼저 작성해서 새로운 데이터프레임에 담는다.
조건식으로 만들어낸 것들은 e1 에 담는다.
e1 = emp[emp['연봉'] >= 200000]
**(2) 이후 해당 조건을 충족한 열을 추출한다.
사원번호, 연봉, 이름을 추출한다.
e1[['EMPLOYEE_ID', '연봉', 'FIRST_NAME', 'LAST_NAME']]
DEPARTMENT_ID 가 10 이거나 20에 해당되는 데이터를 출력한다.부서번호: DEPARTMENT_ID
emp.head(2)

꼭 head를 쓸 때는 10개가 아닌 2개만 봐도 대략적으로 확인할 수 있다.
또는 연산자는 | : 시프트+ 1 (또는) 이다.
그리고는 (그리고) : 시프트 + 7 이다.
emp[(emp['DEPARTMENT_ID'] == 10.0) | (emp['DEPARTMENT_ID'] == 20.0) | (emp['DEPARTMENT_ID'] == 50.0) | (emp['DEPARTMENT_ID'] == 80.0)]
위와 같이 조건을 확장할 수 있다.
emp[(emp['DEPARTMENT_ID'] == 10.0) | (emp['DEPARTMENT_ID'] == 20.0)
연산자로 이을 떄는 () (괄호) 로 묶는 것을 잊지 말자.
또한 같다는 == 이다.
()로 묶은 것을 봐야 하니 마지막에는 [] (대괄호)로 묶는다.

emp.loc[emp['DEPARTMENT_ID'].isin([10.0])]
emp.loc[emp['DEPARTMENT_ID'].isin([10.0, 20.0, 50.0, 80.0])]
isin([10.0, 20.0, 50.0, 80.0]) 을 보면 괄호() 안에 계속 확장할 수 있다.
JOB_ID 열 에서 특정 이름이 들어간 것만 출력하기emp.loc[emp['JOB_ID'].isin(['ST_MAN', 'AD_ASST'])]
#비트윈: 샐러리 15000 이상 ~ 20000 이하
#비교 연산자 사용
emp[(emp['SALARY'] >= 15000) & (emp['SALARY'] <= 20000)]

기본적으로 both(이상, 이하)로 구성됨.
inclusive='both' 는 생략 가능하다.
조건이 10000 이상 14000 이하니 생략하도록 하자.
emp[emp['SALARY'].between(10000, 14000)]
inclusive='right'
emp[emp['SALARY'].between(10000, 14000, inclusive='right')]

inclusive='neither'
emp[emp['SALARY'].between(10000, 14000, inclusive='neither')]
## 10000 초과 11000 이하
emp[emp['SALARY'].between(10000,11000, inclusive = 'right')]
## 10000 이상 11000 미만
emp[emp['SALARY'].between(10000,11000, inclusive = 'left')]
## 10000 이상 11000 이하
emp[emp['SALARY'].between(10000,11000, inclusive = 'both')]
## 10000 초과 11000 미만
emp[emp['SALARY'].between(10000,11000, inclusive = 'neither')]
emp.loc[emp['SALARY'].between(10000,11000, inclusive = 'neither'), ['SALARY']]

합계, 평균, 최소, 최대, 개수세기
emp['SALARY'].sum()
emp['SALARY'].mean()
emp['SALARY'].min()
emp['SALARY'].max()
emp['SALARY'].count()
groupby는 기준이 되는 열이다.
emp.groupby('DEPARTMENT_ID')['DEPARTMENT_ID'].count()

emp.groupby('DEPARTMENT_ID')[['SALARY']].sum()

emp.groupby('JOB_ID')[['SALARY']].mean()

as_indexas_index = False 를 이용한다.
groupby 할 때 사용할 수 있다.
emp.groupby('JOB_ID', as_index = False)[['SALARY']].sum()
JOB_ID가 열로 변경된 것을 확인할 수 있다.
인덱스 번호는 따로 생긴다.
