일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- python
- adaptive life cycle
- webcrawling
- Agile
- 크롤링
- DANAWA
- data analyze
- matplotlib
- AWS
- TypeScript
- javascript
- Project
- instance
- analyzing
- Crawling
- ECS
- 애자일
- pandas
- 자바스크립트
- algorithm
- keras
- Method
- Scrum
- tensorflow
- angular
- data
- 다나와
- 프로젝트
- opencv
- visualizing
Archives
- Today
- Total
LiJell's 성장기
14.python.drop_shift_rename 본문
반응형
Modified on Jan 07 2022
# -- coding: utf-8 --
"""
Created on Tue Dec 28 13:14:11 2021
@author: hanju
"""
14. drop, shift, rename
1. drop
- 특정 행, 컬럼 제거
- 이름 전달
emp = pd.read_csv("./data/emp.csv")
emp
# empno ename deptno sal
# 0 1 smith 10 4000
# 1 2 allen 10 4500
# 2 3 ford 20 4300
# 3 4 grace 10 4200
# 4 5 scott 30 4100
# 5 6 king 20 4000
# scott 퇴사
emp.loc()
emp['ename'] =='scott' # 조건문
emp.loc[emp['ename'] == 'scott'] # scott 관련된 record
# empno ename deptno sal
# 4 5 scott 30 4100
emp.loc[emp['ename'] == 'scott',:]
# empno ename deptno sal
# 4 5 scott 30 4100
emp.loc[~(emp['ename'] == 'scott'),:] # ~ 는 not을 뜻함. 따라서 scott이라는 이름과 같은애를 빼줘 전체에서 뜻함
# empno ename deptno sal
# 0 1 smith 10 4000
# 1 2 allen 10 4500
# 2 3 ford 20 4300
# 3 4 grace 10 4200
# 5 6 king 20 4000
emp
emp.drop(4, axis=0) # 행기준, 4번째 idx 제외
[예제]
- emp 데이터셋에서 sal 컬럼 제외 (iloc)
emp
# empno ename deptno sal
# 0 1 smith 10 4000
# 1 2 allen 10 4500
# 2 3 ford 20 4300
# 3 4 grace 10 4200
# 5 6 king 20 4000
emp.drop('sal', axis = 1)
# empno ename deptno
# 0 1 smith 10
# 1 2 allen 10
# 2 3 ford 20
# 3 4 grace 10
# 4 5 scott 30
# 5 6 king 20
emp.iloc[:,:-1] #
emp.iloc[:,0:3] #
emp.loc[:, "empno":"deptno"] #위 세개는 모두 같은 값 # str으로 슬라이싱을 해주면 마지막 까지 포함해서 나옴
# empno ename deptno
# 0 1 smith 10
# 1 2 allen 10
# 2 3 ford 20
# 3 4 grace 10
# 4 5 scott 30
# 5 6 king 20
emp.drop(['ename','deptno'], axis=1)
'''
empno sal
0 1 4000
1 2 4500
2 3 4300
3 4 4200
4 5 4100
5 6 4000
'''
2. shift
- 행 또는 열을 이동
- 전일자 대비 증감율
emp
emp['sal'].shift() # default : axis = 0 # 한칸씩 밀림
'''
0 NaN
1 4000.0
2 4500.0
3 4300.0
4 4200.0
5 4100.0
Name: sal, dtype: float64
'''
예제 - 다음 데이터프레임에서 전일자 대비 증감율 출력
s1 = Series([3000,3500,4200,2800,3600], index=['2021/01/01','2021/01/02', '2021/01/03' , '2021/01/04', '2021/01/05'])
s1
'''
2021/01/01 3000
2021/01/02 3500
2021/01/03 4200
2021/01/04 2800
2021/01/05 3600
dtype: int64
'''
# 1월 2일 증감률 >> ((1월-2월)/2월)*100 >>>> ((3500-3000)/3000)*100
s1.shift()
'''
2021/01/01 NaN
2021/01/02 3000.0
2021/01/03 3500.0
2021/01/04 4200.0
2021/01/05 2800.0
dtype: float64
'''
(s1-s1.shift())/s1.shift() * 100
'''
2021/01/01 NaN
2021/01/02 16.666667
2021/01/03 20.000000
2021/01/04 -33.333333
2021/01/05 28.571429
dtype: float64
'''
3. rename
- 행, 컴럼명 변경
emp
emp.columns = ['emptno','ename','deptno','salary']
emp
'''
emptno ename deptno salary
0 1 smith 10 4000
1 2 allen 10 4500
2 3 ford 20 4300
3 4 grace 10 4200
4 5 scott 30 4100
5 6 king 20 4000
'''
emp.rename({'salary':'sal', 'deptno' : 'dept_no'}, axis =1)
'''
emptno ename dept_no sal
0 1 smith 10 4000
1 2 allen 10 4500
2 3 ford 20 4300
3 4 grace 10 4200
4 5 scott 30 4100
5 6 king 20 4000
'''
# [예제] emp 데이터에서 ename 을 index 로 설정 후 scott을 SCOTT 변경경해 보세요
emp.set_index('ename').rename({'scott':'SCOTT'})
'''
emptno deptno salary
ename
smith 1 10 4000
allen 2 10 4500
ford 3 20 4300
grace 4 10 4200
SCOTT 5 30 4100
king 6 20 4000
'''
emp = emp.set_index('ename')
emp.rename({"scott":"SCOTT"}, axis = 0)
'''
emptno deptno salary
ename
smith 1 10 4000
allen 2 10 4500
ford 3 20 4300
grace 4 10 4200
SCOTT 5 30 4100
king 6 20 4000
'''
emp
반응형
'Bigdata > 파이썬_Python' 카테고리의 다른 글
16.python_NA_missing_duplicate_value (0) | 2022.01.10 |
---|---|
15.python_stack_unstack_pivot_table (0) | 2022.01.08 |
13.python_merge_concat_join (0) | 2022.01.06 |
12.python_pandas_groupby (0) | 2022.01.05 |
11.python_pandas_sort (0) | 2022.01.04 |
Comments