행 인덱스 재배열
- reindex( ) 메소드를 사용해 데이터프레임의 행 인덱스를 새로운 배열로 재지정할 수 있음
DataFrame 객체.reindex( )
행 인덱스 초기화
- reset_index( ) 메소드를 활용해 행 인덱스를 정수형 인덱스로 초기화
- 이 때 기존 인덱스는 컬럼으로 이동한다
행 인덱스 정렬
- ascending을 활용해 인덱스를 오름차순, 내림차순 정렬 가능
- 기본값 True(오름차순)
- Fasle로 정해서 내림차순 가능
특정 열의 데이터값을 기준으로 데이터프레임 정렬
- sort_values( ) 메소드 사용
DataFrame 객체.sort_values(by='기준 컬럼 명', ascending)
산술 연산
- 판다스 객체의 산술연산은 내부적으로 3단계 프로세스를 거친다
- 1) 행/컬럼 인덱스를 기준으로 모든 원소를 정렬
- 2) 동일 위치 원소끼리 일대일 대응
- 3) 대응 원소끼리 계산
시리즈 vs 시리즈
- 시리즈의 모든 인덱스에 대해 같은 인덱스를 가진 원소끼리 계산
- 인덱스에 연산 결과를 매칭해 새 시리즈 반환'
=> 각 시리즈의 인덱스 순서가 다를 경우, pandas는 알아서 같은 인덱스를 찾아 정렬한 후 계산함
- 연산하는 두 시리즈의 원소 개수가 다르거나 시리즈의 크기가 같지만 인덱스 값이 다를 경우
- 짝을 지을 동일한 인덱스가 없는 경우 NaN으로 처리(pandas에서만)
- 동일 인덱스가 존재해 서로 대응되더라도 한 쪽의 데이터값이 NaN인 경우 연산 대상 데이터가 존재하지 않음
데이터프레임 연산
- 행/컬럼 기준으로 정렬하고 일대일 대응되는 원소끼리 연산을 처리
데이터프레임 vs 숫자
- 데이터프레임에 어떤 숫자를 더하면 모든 원소에 숫자를 더함(브로드캐스팅 지원)
- 사칙연산 가능
- 기존 데이터프레임 형태를 그대로 유지한 채 원소값만 새로운 값으로 변경됨
2장 데이터 입출력
외부 파일 읽어오기
- 판다스는 다양한 외부 파일을 읽어와서 데이터프레임으로 변환하는 함수를 제공
- 반대로 데이터프레임을 다양한 유형의 파일로 저장 가능
- read_csv("경로") / to_csv("경로")
CSV 파일
- 데이터를 쉼표로 구분하고 있다는 의미. 텍스트 파일
- 쉼표로 열 구분, 줄바꿈으로 행 구분
- csv 파일에 따라 쉼표 대신 탭(\t)이나 공백(" ")으로 텍스트를 구분하기도 함
- 이때 구분자.(sep 또는 delimiter) 옵션을 입력
Excel 파일
- read_excel( )
- 사용법은 read_csv 함수와 거의 비슷
Json 파일
- 파이썬 딕셔너리와 비슷한 구조
- 키 : 밸류
웹(Web)에서 가져오기
HTML 웹페이지에서 표 속성 가져오기
- 판다스 read_html() 함수
- 웹페이지 <table> 대크에서 표 형식의 데이터를 찾아 데이터프레임으로 변환
- 표 데이터들은 각각 별도의 데이터프레임으로 변환되기 때문에 여러 개의 데이터프레임(표)을 원소로 갖는 리스트가 반환됨
```
# tables로 html 페이지의 표 속성 가져옴
# table 리스트의 원소를 iteration 하면서 각 테이블을 화면에 출력
tables = pd.read_html(url)
len(tables)
for i in range(len(tables)): # 'tables 리스트 길이'라는 정수 범위를 생성해(range) 하나씩 반복(iteration)
print(f'tables[{i}]') # tables[0]과 tables[0] 을 print
display(tables[i]) # 각 테이블을 display
print('\n')
```
데이터 저장하기
CSV 파일로 저장
- 판다스 데이터프레임은 2차원 배열로 구조화된 데이터이므로 2차원 구조를 갖는 csv 파일로 변환할 수 있음
- to_csv( ) 메소드를 적용
- json, excel 파일의 경우 to_json( ), to_excel( ) 사용
'데이터분석 공부 > DSBA 4기' 카테고리의 다른 글
파이썬 str.replace( ) 메소드로 데이터프레임 속 문자 변경하기 (1) | 2024.03.07 |
---|---|
파이썬 column 명 바꾸기 (1) | 2024.03.07 |
pandas 데이터프레임 loc와 iloc 비교 정리 (0) | 2024.03.06 |
05/03/2024 헷갈리는 for문 (0) | 2024.03.05 |
파이썬 = 와 ==, == 와 is 의 차이 (0) | 2024.03.05 |