파이썬에서 데이터프레임은 주로 pandas 라이브러리를 이용하여 처리하게 된다.
이 글에서는 데이터 파일을 가져오고 저장하는 방법과 자주 사용하는 옵션을 간단하게 정리해두고자 한다.
1. pd.read_csv()
`pd.read_csv()` 함수는 csv 파일의 데이터를 불러오는 데 사용된다. txt 파일도 같은 함수로 불러올 수 있다.
import pandas as pd
df = pd.read_csv("파일경로/data.csv")
df = pd.read_csv("파일경로/data.txt")
1) header
파일의 첫 행에 컬럼명이 있는 경우 `header` 옵션을 사용하여 지정할 수 있다. 기본값은 `header=0`으로, 첫 번째 줄이 컬럼명으로 간주된다.
import pandas as pd
df = pd.read_csv("파일경로/data.csv") # 첫번째 줄에 컬럼명이 있는 경우
df = pd.read_csv("파일경로/data.csv", header = False) # 첫번째 줄에 컬럼명이 없는 경우
데이터에 컬럼명이 포함되어 있지 않은 경우, 컬럼명을 직접 지정해서 불러올 수 있다. 컬럼명이 있더라도, 원하는대로 컬럼명을 변경할 수 있다. 이 경우, 데이터 컬럼의 순서대로 새로운 컬럼명을 작성하면 된다. 이러한 경우들에 사용하는 옵션은 `names` 이다.
header = ["ID", "Name", "Gender"]
df = pd.read_csv("파일경로/data.csv", names = header)
df.head()
2) usecols
특정한 컬럼만 불러오고 싶을 때는 `usecols` 옵션을 사용하여 불러올 컬럼명을 명시하면 된다.
import pandas as pd
columns = ["Survived", "Age", "Parch", "Fare", "Embarked"]
df = pd.read_csv("titanic.csv", usecols = columns)
print(df.columns)
3) sep
csv 파일의 구분자는 기본적으로 comma(,)지만, 다른 구분자를 사용할 경우 `sep` 옵션을 지정해야 한다.
다른 구분자로는 "|"(bar), "\t"(tab), ":"(colon) 등이 있다.
import pandas as pd
# 구분자가 탭인 파일
df = pd.read_csv("파일경로/data.csv", sep="\t")
# 구분자가 공백인 파일
df = pd.read_csv("파일경로/data.txt", sep = " ")
4) chunksize
대용량 데이터를 처리할 때는 `chunksize` 옵션을 사용하여 데이터의 일부씩 불러올 수 있다.
나는 RAM 8기가를 사용하는데, 용량이 큰 파일을 불러올 때, 주피터 노트북의 커널이 터지는 경우가 있었다.
이럴 때는 chunk 단위로 불러오면 메모리 문제를 해결할 수 있다.
import pandas as pd
chunksize = 1000000
chunks = pd.read_csv("파일경로/data.csv", chunksize = chunksize)
for chunk in chunks:
print(chunk.head())
2. pd.DataFrame.to_csv()
`pd.DataFrame.to_csv()` 함수는 데이터프레임을 csv 파일로 저장하는 데 사용된다. txt 파일도 같은 함수로 저장할 수 있다.
import pandas as pd
df = pd.DataFrame({
"ID": [1, 2, 3],
"Name": ["Alice", "Bob", "Charlie"],
"Age": [25, 30, 35]
})
# CSV 파일로 저장하기
df.to_csv("파일경로/output.csv")
1) index
데이터프레임을 저장할 때, 기본적으로 인덱스가 함께 저장된다. 인덱스를 제외하고 저장하려면 `index=False` 옵션을 사용한다.
인덱스를 저장하지 않아도, pandas로 불러오면 자동으로 인덱스가 생성된다. 따라서 데이터프레임을 저장할 때 가장 많이 사용하는 옵션이다.
df.to_csv("파일경로/output.csv", index=False)
2) columns
특정한 컬럼만 저장하고 싶을 때는 `columns` 옵션을 사용하여 저장할 컬럼명을 명시하면 된다.
df.to_csv("파일경로/output.csv", columns=["ID", "Name"])
참고한 자료 : pandas document (공식문서)
- https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
- https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_csv.html
'파이썬' 카테고리의 다른 글
| [python] If문 간결하게 작성하는 방법 : 코드 가독성 높이기 (0) | 2024.09.12 |
|---|---|
| [파이썬/python] strip 함수 - 공백 제거, 특정 문자 제거 (0) | 2024.09.05 |
| [python][데이터처리] 공백으로 채워진 값을 null로 바꾸기 (2) | 2024.07.21 |
| [python/pandas] read_csv에서 인코딩 문제 해결 방법 (UnicodeDecodeError) (2) | 2024.07.21 |
| [python] 특정 디렉토리 내의 파일 또는 파일명 가져오기 (os.listdir/glob) (1) | 2024.07.20 |