데이터 변형
▶️ 특정 index의 value값을 바꾸고 싶을 때는 변수.index명 = 특정 값을 활용
▶️ 변수.drop('index명')을 활용하면 특정 index값과 value값을 제거할 수 있음
→ 하지만 영구적으로 사라지는 것은 아님. 변수를 출력해보면 index와 value값이 그대로 있는 것을 볼 수 있음
▶️ 영구적으로 제거하기 위해서는 변수 하나를 새로 생성해 변수.drop('index명')을 저장하면 출력했을 때 사라진 모습을 볼 수 있음
DataFrame
→ 2차원 행렬(Matrix)
▶️ pandas를 import 함
▶️ 사전형으로 데이터프레임을 만들어줌
▶️ df 변수에 pd.DataFrame(data)를 저장해줌
→ 보통은 cvs 파일이 있어서 read해서 가져옴
pd.read_csv('파일명')
▶️ df의 type을 확인해보면 DataFrame임을 확인할 수 있음
▶️ Pandas에서는 1차원 배열을 Series 자료구조라고 함
⇒ Series의 모음이 DataFrame임
- 전치행렬(transpose)
▶️ 전치행렬을 표현하는 방법
▶️ 다시 일반 df을 출력했을 때, values값과 columns 값만 출력하는 방법은 아래와 같음
▶️ .values / .columns를 통해 value값과 column 값만 따로 모아서 출력할 수 있음
- 변형
▶️ 위와 같은 DataFrame에서 column값 중 '2010-2015 증가율'만 따로 출력함
▶️ 0.0283 혹은 0.0163같은 수는 읽기가 불편하기 때문에 *100을 한 값으로 갱신하려고 함
⇒ df.columns = ['지역': '2015','2010','2005','2000','i_rate_2010_2015']으로도 표현이 가능하지만 column이 많은 경우에는 힘들기 때문에 지양함
▶️ enumerate를 column값이 몇 번 index에 있는지 확인할 수 있음
- column 이름 변경
▶️ 위 방법을 통해 몇 번 index에 있는지 확인한 후 df.columns.values[바꾸고자 하는 index의 번호] = '바꾸려고 하는 이름'을 입력하면 column이름을 바꿀 수 있음
- 추가
▶️ a와 b의 증가율은 a-b/b로 표현할 수 있음
▶️ -1.342519와 -3.397990은 읽기 불편하므로 .round()로 소수점 수를 제한함
→ .round(2)는 소수점 둘째 자리까지만 표현함
▶️ 위와 같이 계산한 값을 i_rate_2005_2010 변수에 저장한 후 DataFrame에 저장 후 출력하면 column 하나가 새로 생성된 모습을 볼 수 있음
- 삭제
▶️ df.drop('인덱스명',axis=0 혹은 1)을 통해 특정 index에 해당하는 열 혹은 행을 제거할 수 있음
→ axis=0은 행 기준, axis=1은 열 기준
⇒ i_rate_2010_2015를 기준으로 열이 지워진 모습
▶️ 다시 df을 출력해보면 저장된 것이 아니기 때문에 사라지지 않은 원래의 모습이 나타남
▶️ 위 방법뿐만이 아니라 index로도 삭제가 가능함
⇒ df.drop('1', axis=0)과 마찬가지임
- 저장
▶️ 현재까지 만들었던 df을 엑셀에 저장하고자 함
▶️ df.to_excel('저장하고자 하는 이름.xlsx')를 출력하면 자동으로 같은 폴더에 저장됨
→ xlsx는 엑셀의 확장자명
Q.
엑셀 파일에 저장할 때, 오늘 날짜를 넣어서 저장하려면?
▶️ 지난번에 정리했더 datetime함수를 이용함
▶️ 오늘 일자를 today 변수에 저장한 후 엑셀 파일에 저장할 때는 인구정리_오늘 일자 이름으로 저장
'Data Analysis' 카테고리의 다른 글
파이차트 그리기 (0) | 2021.09.02 |
---|---|
MBTI 데이터 분석 프로그램 (0) | 2021.09.02 |
[ Python ] 인덱싱 (0) | 2021.09.02 |
[ Python ] 모듈 (0) | 2021.09.02 |
[ Python ] 클래스 (0) | 2021.09.02 |