티스토리 뷰
판다스는 다양한 형태의 외부 파일을 읽어와서 데이터프레임으로 변환하는 함수를 제공한다. csv json xlsx등 다양한 파일 확장자를 판다스로 열 수 있다.
판다스의 기초는 아래와 같다.
2021/01/10 - [인공지능(Artificial Intelligence)/python] - [pandas] 판다스 기초 한번에 정리
CSV 파일
데이터 값을 쉼표(,)로 구분하고 있다는 의미로 CSV(comma-separated values)라고 부르는 텍스트 파일이다. 기본적으로 쉼표(,)로 열을 구분하고 줄 바꿈으로 행을 구분한다. 사용법은 판다스 read_csv() 함수에 확장자(.csv)를 포함하여 파일 결로를 입력하면 CSV 파일을 읽어봐서 데이터프레임으로 변환한다. 인덱스를 지정하는 옵션에는 header(열 이름으로 사용할 행 지정)과 index_col(행 인덱스로 사용할 열을 지정) 옵션이 존재한다.
아래와 같은 CSV 파일이 있다고 가정하고 실습을 진행해보자.
# ./sample.csv
# 현재 코드를 작성 중인 폴더 안에 sample.csv 파일이 있다는 말이다.
# 아래의 4줄이 포함되어 있다.
c0,c1,c2,c3
0,1,4,7
1,2,5,8
2,3,6,9
위의 예시에서 볼 수 있듯이 쉼표(,)와 행으로 구분된 것을 확인할 수 있다. 위의 데이터를 기준으로 header 옵션이 없으면 CSV 파일의 첫 행의 데이터인 c0, c1, c2, c3가 열 이름이 된다. 그리고 index_col 옵션을 지정하지 않으면 행 인덱스는 정수 0,1,2가 자동으로 생성된다. 만약 index_col('c0') 옵션을 사용하면 'c0' 열이 index가 되는 것을 볼 수 있다.
이제 코드를 작성해보자.
import pandas as pd
file_path= './sample.csv'
df1 = pd.read_csv(file_path)
df2 = pd.read_csv(file_path, header=None)
df3 = pd.read_csv(file_path, index_col=None)
df4 = pd.read_csv(file_path, index_col='c0')
df1, df2, df3, df4가 어떻게 출력 될지 생각해보면, 아래의 print된 내용을 보자.
# df1
c0 c1 c2 c3
0 0 1 4 7
1 1 2 5 8
2 2 3 6 9
# df2
0 1 2 3
0 c0 c1 c2 c3
1 0 1 4 7
2 1 2 5 8
3 2 3 6 9
# df3 df1과 동일
c0 c1 c2 c3
0 0 1 4 7
1 1 2 5 8
2 2 3 6 9
# df1
c1 c2 c3
c0
0 1 4 7
1 2 5 8
2 3 6 9
위에서 CSV 파일은 쉼표(,)로 구분한다고 말했다. 하지만 CSV 파일에 따라 쉼표(,) 대신 탭(\t)이나 공백(" ")으로 텍스트를 구분하기도 한다. 이때는 구분자 옵션(sep 이나 delimiter)을 알맞게 입력해야한다.
pd.read_csv() 옵션
옵션 | 설명 |
path | 파일의 위치, URL |
seq(또는 delimiter) | 텍스트 데이터를 필드별로 구분하는 문자 |
header | 열 이름으로 사용될 행의 번호(기본값은 0인덱스) header가 없고 첫 행부터 데이터가 있는 경우 None으로 지정 가능 |
index_col | 행 인덱스로 사용할 열의 번호 또는 열 이름 |
names | 열 이름으로 사용할 문자열의 리스트 |
skiprows | 처음 몇 줄을 skip 할 것인지 설정. 리스트로 넣어서 [] |
parse_dates | 날짜 텍스트를 datetime64로 변환할 것인지를 설정 |
skip_footer | 마지막 몇 줄을 skip 할지 설정(int) |
encoding | 텍스트 인코딩 종류를 지정(ex_'utf-8') |
위에서 나온 내용 중에 몇 가지만 더 가지고 놀아보자.
df5 = pd.read_csv(file_path, names= ['첫번째', '두번째', '세번째'])
# output
첫번째 두번째 세번째
c0 c1 c2 c3
0 1 4 7
1 2 5 8
2 3 6 9
df6 = pd.read_csv(file_path, delimiter=',')
# output
c0 c1 c2 c3
0 0 1 4 7
1 1 2 5 8
2 2 3 6 9
부족한 부분이 있다면, 아래의 pandas 공식문서에서 확인해 보도록 하자.
pandas.pydata.org/docs/user_guide/io.html#io-read-csv-table
'인공지능(Artificial Intelligence) > python' 카테고리의 다른 글
[pandas] JSON 파일 열기 (0) | 2021.01.13 |
---|---|
[pandas] Excel 파일 열기 (0) | 2021.01.12 |
[pandas] 판다스 기초 한번에 정리 (2) | 2021.01.10 |
[pandas] 시리즈(Series) 기초정리 (0) | 2021.01.09 |
공공데이터(XML, JSON)을 python으로 불러오기_기초 (1) | 2021.01.08 |
- Total
- Today
- Yesterday
- error:0308010C:digital envelope routines::unsupported
- logout
- nodejs
- 자료구조
- Express
- JavaScript
- 클라우데라
- UserCreationForm
- typescript
- useState
- DFS
- mongoDB
- django
- next.config.js
- BFS
- 자연어처리
- Deque
- useHistory 안됨
- nextjs autoFocus
- login
- Python
- TensorFlow
- react autoFocus
- vuejs
- react
- Vue
- NextJS
- Queue
- pandas
- read_csv
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |