Pandas Dataframe에서 헤더 없는 테이블 읽어오기
Pandas Dataframe에서 헤더 없는 테이블 읽어오기
Pandas에서 헤더 없는 테이블을 읽어오는 가장 간단한 방법은 header
옵션을 사용하는 것입니다. 기본적으로 Pandas는 첫 번째 행을 헤더로 인식하지만 header=None
을 설정하면 첫 번째 행을 데이터로 읽어오고 컬럼 이름은 자동으로 0부터 증가하는 숫자로 지정됩니다.
import pandas as pd
df = pd.read_csv("data.csv", header=None)
print(df)
# 출력 예시
# 0 1 2 3
# 0 a b c d
# 1 e f g h
names 옵션 사용
names
옵션을 사용하여 컬럼 이름을 직접 지정할 수 있습니다. 컬럼 이름은 리스트 형태로 입력해야 합니다.
df = pd.read_csv("data.csv", header=None, names=["col1", "col2", "col3", "col4"])
print(df)
# 출력 예시
# col1 col2 col3 col4
# 0 a b c d
# 1 e f g h
skiprows 옵션 사용
헤더보다 앞에 있는 불필요한 행을 제거하고 싶다면 skiprows
옵션을 사용할 수 있습니다. 숫자를 입력하면 해당 숫자만큼 행을 건너뛴 후 데이터를 읽어옵니다.
df = pd.read_csv("data.csv", header=None, skiprows=1)
print(df)
# 출력 예시
# 0 1 2 3
# 0 b c d e
# 1 f g h i
usecols 옵션 사용
특정 컬럼만 읽어오고 싶다면 usecols
옵션을 사용할 수 있습니다. 컬럼 이름 또는 컬럼 순번을 리스트 형태로 입력해야 합니다.
df = pd.read_csv("data.csv", header=None, usecols=[0, 2])
print(df)
# 출력 예시
# 0 2
# 0 a c
# 1 e g
특정 행 수만 읽어오고 싶다면 nrows
옵션을 사용할 수 있습니다. 숫자를 입력하면 해당 숫자만큼 행을 읽어옵니다.
df = pd.read_csv("data.csv", header=None, nrows=2)
print(df)
# 출력 예시
# 0 1 2 3
# 0 a b c d
# 1 e f g h
참고:
- 위 코드는 예시이며, 실제 상황에 맞게 수정해야 합니다.
- 더 많은 정보는 Pandas 공식 문서를 참고하십시오.
예제 코드:
import pandas as pd
# 헤더 없는 CSV 파일 읽어오기
df = pd.read_csv("data.csv", header=None)
# 컬럼 이름 출력
print(df.columns)
# 데이터 출력
print(df.to_string())
# 특정 컬럼만 선택하기
df = df[["col1", "col3"]]
# 컬럼 이름 변경하기
df.columns = ["새로운 이름1", "새로운 이름2"]
# 특정 행만 선택하기
df = df.iloc[0:2]
# 데이터 프레임 정보 출력
print(df.info())
# 데이터 프레임 요약 출력
print(df.describe())
# 특정 값 찾기
print(df.loc[df["col1"] == "값"])
# 특정 값 수정하기
df.loc[df["col1"] == "값", "col2"] = "새로운 값"
# 데이터 프레임 저장하기
df.to_csv("output.csv", index=False)
헤더 없는 Pandas 데이터 프레임 읽어오기 - 대체 방법
numpy.genfromtxt 사용
import numpy as np
data = np.genfromtxt("data.csv", delimiter=",", skip_header=1)
# 데이터 출력
print(data)
delimiter
옵션은 데이터 구분 문자를 지정합니다.skip_header
옵션은 헤더 행을 건너뛸 수 있도록 설정합니다.
csv 모듈 사용
Python 표준 라이브러리 csv
모듈을 사용하여 헤더 없는 데이터를 읽어올 수 있습니다.
import csv
with open("data.csv", "r") as f:
reader = csv.reader(f)
data = list(reader)
# 데이터 출력
print(data)
reader
객체는 데이터를 행별로 읽어옵니다.list()
함수는reader
객체를 리스트로 변환합니다.
직접 코드 작성
간단한 데이터 구조라면 직접 코드를 작성하여 헤더 없는 데이터를 읽어올 수 있습니다.
data = []
with open("data.csv", "r") as f:
for line in f:
data.append(line.split(","))
# 데이터 출력
print(data)
f.readlines()
함수는 파일의 모든 행을 읽어옵니다.line.split(",")
함수는 각 행을 쉼표를 기준으로 분리합니다.
결론
python pandas dataframe