인덱스 다루기
이번 시간에는 인덱스를 배워 보도록 하겠습니다.
이번 시간 정리
set_index와 reset_index를 비교해 봅시다.
1. set_index
원하는 값으로 인덱스 컬럼을 변경 할 수 있다.
2. reset_index
변경된 인덱스 컬럼을 되돌릴 수 있다.
인덱스명을 살릴 필요 없을 때는 drop=True로 변경 한다.
이제 아래의 코드 실행 버튼을 눌러 실습을 진행해 보세요!
실행 완료
[43]:
메뉴가격호수칼로리0123456
후라이드 | 12000 | 10호 | 1000 |
양념치킨 | 13000 | 10호 | 1400 |
간장치킨 | 14000 | 9호 | 1600 |
마늘치킨 | 14000 | 9호 | 1800 |
파닭 | 14000 | 11호 | 1300 |
닭강정 | 15000 | 12호 | 1500 |
양반후반 | 13000 | 10호 | 1300 |
1. set_index
- 원하는 값으로 인덱스 컬럼을 변경 할 수 있다.
실행 완료
[42]:
가격호수칼로리메뉴후라이드양념치킨간장치킨마늘치킨파닭닭강정양반후반
12000 | 10호 | 1000 |
13000 | 10호 | 1400 |
14000 | 9호 | 1600 |
14000 | 9호 | 1800 |
14000 | 11호 | 1300 |
15000 | 12호 | 1500 |
13000 | 10호 | 1300 |
※ 아래 '#코드 입력하기' 영역에 직접 입력해 보세요.
강의 영상을 통해 정답 코드를 확인 하실 수 있습니다.
실행 완료
실행 완료
2. reset_index
- 변경된 인덱스 컬럼을 되돌릴 수 있다.
- 인덱스명을 살릴 필요 없을 때는 drop=True로 변경한다.
실행 완료
[39]:
index메뉴가격호수칼로리0123456
a | 후라이드 | 12000 | 10호 | 1000 |
b | 양념치킨 | 13000 | 10호 | 1400 |
c | 간장치킨 | 14000 | 9호 | 1600 |
d | 마늘치킨 | 14000 | 9호 | 1800 |
e | 파닭 | 14000 | 11호 | 1300 |
f | 닭강정 | 15000 | 12호 | 1500 |
g | 양반후반 | 13000 | 10호 | 1300 |
행과 열 추가
이번 시간에는 행과 열을 추가해 보도록 하겠습니다.
이번 시간 정리
1. 열(column) 추가
df['추가 하고 싶은 컬럼명'] = 값
2. 행(row) 추가
loc나 iloc를 사용한다.
[리마인드] loc와 iloc
- loc : 인덱스명(1,2,3,), 컬럼 명(메뉴, 가격, 호수)을 통해서 데이터를 선택
- iloc : 인덱스 번호(범위), 컬럼 번호(범위) 통해서 데이터를 선택
이제 아래의 코드 실행 버튼을 눌러 실습을 진행해 보세요!
1.열(column) 추가
실행 완료
[51]:
메뉴가격호수칼로리0123456
후라이드 | 12000 | 10호 | 1000 |
양념치킨 | 13000 | 10호 | 1400 |
간장치킨 | 14000 | 9호 | 1600 |
마늘치킨 | 14000 | 9호 | 1800 |
파닭 | 14000 | 11호 | 1300 |
닭강정 | 15000 | 12호 | 1500 |
양반후반 | 13000 | 10호 | 1300 |
실행 완료
[49]:
메뉴가격호수칼로리원산지할인율012345610
후라이드 | 12000 | 10호 | 1000.0 | NaN | 0.2 |
양념치킨 | 13000 | 10호 | 1400.0 | NaN | 0.2 |
간장치킨 | 14000 | 9호 | 1600.0 | NaN | 0.2 |
마늘치킨 | 14000 | 9호 | 1800.0 | NaN | 0.2 |
파닭 | 14000 | 11호 | 1300.0 | NaN | 0.2 |
닭강정 | 15000 | 12호 | 1500.0 | NaN | 0.2 |
양반후반 | 13000 | 10호 | 1300.0 | NaN | 0.2 |
풀잎치킨 | 10000 | 10호 | NaN | NaN | 0.2 |
실행 완료
[50]:
메뉴가격호수칼로리원산지할인율할인가012345610
후라이드 | 12000 | 10호 | 1000.0 | NaN | 0.2 | 9600.0 |
양념치킨 | 13000 | 10호 | 1400.0 | NaN | 0.2 | 10400.0 |
간장치킨 | 14000 | 9호 | 1600.0 | NaN | 0.2 | 11200.0 |
마늘치킨 | 14000 | 9호 | 1800.0 | NaN | 0.2 | 11200.0 |
파닭 | 14000 | 11호 | 1300.0 | NaN | 0.2 | 11200.0 |
닭강정 | 15000 | 12호 | 1500.0 | NaN | 0.2 | 12000.0 |
양반후반 | 13000 | 10호 | 1300.0 | NaN | 0.2 | 10400.0 |
풀잎치킨 | 10000 | 10호 | NaN | NaN | 0.2 | 8000.0 |
실행 완료
[47]:
메뉴가격호수칼로리원산지012345610
후라이드 | 12000 | 10호 | 1000.0 | NaN |
양념치킨 | 13000 | 10호 | 1400.0 | NaN |
간장치킨 | 14000 | 9호 | 1600.0 | NaN |
마늘치킨 | 14000 | 9호 | 1800.0 | NaN |
파닭 | 14000 | 11호 | 1300.0 | NaN |
닭강정 | 15000 | 12호 | 1500.0 | NaN |
양반후반 | 13000 | 10호 | 1300.0 | NaN |
풀잎치킨 | 10000 | 10호 | NaN | NaN |
2. 행(row) 추가
- 딕셔너리 형태 : 필요한 값만 대입을 할 수가 있다.
- 리스트 형태 : 모든 값들을 다 넣어야 한다.
코드 실행
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/tmp/ipykernel_13/792647271.py in <module>
1 # 리스트 형태로 데이터(행) 추가
2 aiffel = ['아이펠치킨', 16000, '11호', 1200, 0.5, 8000, '국내산']
----> 3 df.loc['new'] = aiffel
4 df
/opt/conda/lib/python3.9/site-packages/pandas/core/indexing.py in __setitem__(self, key, value)
721
722 iloc = self if self.name == "iloc" else self.obj.iloc
--> 723 iloc._setitem_with_indexer(indexer, value, self.name)
724
725 def _validate_key(self, key, axis: int):
/opt/conda/lib/python3.9/site-packages/pandas/core/indexing.py in _setitem_with_indexer(self, indexer, value, name)
1722
1723 if missing:
-> 1724 self._setitem_with_indexer_missing(indexer, value)
1725 return
1726
/opt/conda/lib/python3.9/site-packages/pandas/core/indexing.py in _setitem_with_indexer_missing(self, indexer, value)
2025 # must have conforming columns
2026 if len(value) != len(self.obj.columns):
-> 2027 raise ValueError("cannot set a row with mismatched columns")
2028
2029 value = Series(value, index=self.obj.columns, name=indexer)
ValueError: cannot set a row with mismatched columns
값 변경
이번 시간에는 값을 변경해 보도록 하겠습니다.
이번 시간 정리
[리마인드] loc와 iloc
- loc : 인덱스명(1,2,3,), 컬럼 명(메뉴, 가격, 호수)을 통해서 데이터를 선택
- iloc : 인덱스 번호(범위), 컬럼 번호(범위) 통해서 데이터를 선택
1. replace
replace는 문자열을 변경하는 함수이다.
df = df.replace('변경전 메뉴명', '변경후 메뉴명')
2. replace, 딕셔너리
# 변수 d에 변경 전후의 메뉴를 딕셔너리 { } 로 묶어준다.
d = {'변경전 메뉴명':'변경후 메뉴명','변경전 메뉴명':'변경후 메뉴명'}
df = df.replace(d)
이제 아래의 코드 실행 버튼을 눌러 실습을 진행해 보세요!
실행 완료
[54]:
메뉴가격호수칼로리원산지0123456
후라이드 | 12000 | 10호 | 1000 | 국내산 |
양념치킨 | 13000 | 10호 | 1400 | NaN |
간장치킨 | 14000 | 9호 | 1600 | NaN |
마늘치킨 | 14000 | 9호 | 1800 | NaN |
파닭 | 14000 | 11호 | 1300 | NaN |
닭강정 | 15000 | 12호 | 1500 | NaN |
양반후반 | 13000 | 10호 | 1300 | NaN |
실행 완료
[55]:
메뉴가격호수칼로리원산지0123456
후라이드 | 12000 | 10호 | 1000 | 국내산 |
양념치킨 | 13000 | 10호 | 1400 | NaN |
간장치킨 | 14000 | 9호 | 1600 | NaN |
마늘치킨 | 14000 | 9호 | 1800 | NaN |
파닭 | 14000 | 11호 | 1300 | 브라질 |
닭강정 | 15000 | 12호 | 1500 | 브라질 |
양반후반 | 13000 | 10호 | 1300 | NaN |
실행 완료
[56]:
메뉴가격호수칼로리원산지0123456
후라이드 | 12000 | 10호 | 1000 | 국내산 |
양념치킨 | 13000 | 10호 | 1400 | NaN |
간장치킨 | 14000 | 9호 | 1600 | NaN |
마늘치킨 | 14000 | 9호 | 1800 | NaN |
파닭 | 14000 | 11호 | 1300 | 브라질 |
닭강정 | 15000 | 12호 | 1500 | 브라질 |
양념반후라이드반 | 13000 | 10호 | 1300 | NaN |
실행 완료
[57]:
메뉴가격호수칼로리원산지0123456
후라이드 | 12000 | 10호 | 1000 | 국내산 |
양념치킨 | 13000 | 10호 | 1400 | NaN |
간장치킨 | 14000 | 9호 | 1600 | NaN |
마늘치킨 | 14000 | 9호 | 1800 | NaN |
파닭 | 14000 | 11호 | 1300 | 브라질 |
닭강정 | 15000 | 12호 | 1500 | 브라질 |
양념반후라이드반 | 13000 | 10호 | 1300 | NaN |
실행 완료
[58]:
메뉴가격호수칼로리원산지0123456
황금후라이드 | 12000 | 10호 | 1000 | 국내산 |
승일양념치킨 | 13000 | 10호 | 1400 | NaN |
간장치킨 | 14000 | 9호 | 1600 | NaN |
마늘치킨 | 14000 | 9호 | 1800 | NaN |
파닭 | 14000 | 11호 | 1300 | 브라질 |
닭강정 | 15000 | 12호 | 1500 | 브라질 |
양념반후라이드반 | 13000 | 10호 | 1300 | NaN |
실행 완료
[59]:
메뉴가격호수칼로리원산지0123456
황금후라이드 | 12000 | 10호 | 1000 | 국내산 |
승일양념치킨 | 13000 | 10호 | 1400 | NaN |
간장치킨 | 14000 | 9호 | 1600 | NaN |
마늘치킨 | 14000 | 9호 | 1800 | NaN |
파닭 | 14000 | 11호 | 1300 | 브라질 |
닭강정 | 15000 | 12호 | 1500 | 브라질 |
양념반후라이드반 | 13000 | 10호 | 1300 | NaN |
실행 완료
'언어 > 파이썬' 카테고리의 다른 글
머신러닝with파이썬3강(2)_결측치처리,정렬 (0) | 2024.03.03 |
---|---|
머신러닝with파이썬3강(1)_데이터불러오기,만들기,삭제하기 (0) | 2024.03.02 |
머신러닝 with 파이썬 2강(2)_데이터선택하기,인덱싱, 슬라이딩 (0) | 2024.02.29 |
머신러닝 기초 with 파이썬 2강_라이브러리 불러오기, 데이터프레임과 시리즈, 데이터 불러오기 및 저장 (0) | 2024.02.28 |
어디까지 파봐썬 10강(3) 프로젝트 3 : 10 이하 숫자만 곱해주는 함수 (1) | 2024.02.27 |