In [1]:
import pandas as pd
df = pd.DataFrame({'c0':[0,1,2], 'c1':[1,2,3], 'c2':[2,3,4]})
df.to_csv("test.csv")
print(df)
c0 c1 c2 0 0 1 2 1 1 2 3 2 2 3 4
In [2]:
df.to_csv("test.csv", index=False)
print(df)
c0 c1 c2 0 0 1 2 1 1 2 3 2 2 3 4
index_col
특정한 열을 인덱스로 지정하는 옵션
In [4]:
df1 = pd.read_csv("test.csv", index_col='c2')
print(df1)
c0 c1 c2 2 0 1 3 1 2 4 2 3
skiprow
건너 뛰어야할 행을 지정하는 옵션
1
: 첫번째 행을 없앤다2
: 첫번째, 두번째 행을 없앤다
In [14]:
df2 = pd.read_csv("test.csv", skiprows=1)
print(df2)
0 1 2 0 1 2 3 1 2 3 4
header
default값으로 csv파일을 읽어올 때, 첫 번째 행은 그 csv파일의 label로 사용한다. 하지만 이를 None으로 해주면 기본적으로 라벨인 0부터 1씩 증가하면서 자동으로 부여된다.
infer
: 0과 같은 의미이다. default값으로 지정된다. 원래 파일 그대로 지정된다
In [17]:
df3 = pd.read_csv("test.csv", header=0)
print(df3)
c0 c1 c2 0 0 1 2 1 1 2 3 2 2 3 4
In [18]:
df3 = pd.read_csv("test.csv", header=None)
print(df3)
0 1 2 0 c0 c1 c2 1 0 1 2 2 1 2 3 3 2 3 4
names
dataframe의 label에 해당하는 값이다. 열벡터(세로)의 첫번째 원소를 말한다. label을 내가 원하는 이름으로 새로 구성할 수 있다.
In [19]:
df4 = pd.read_csv("test.csv", names = ['a', 'b', 'c'])
print(df4)
a b c 0 c0 c1 c2 1 0 1 2 2 1 2 3 3 2 3 4
prefix
문자 한 개를 넘겨주면 그 옆에 0, 1, 2, ... 으로 늘려가며 자동으로 names(label)을 생성한다
In [26]:
df5 = pd.read_csv("test.csv", header=None, prefix='V')
print(df5)
# 다른 옵션
df5 = pd.read_csv("test.csv", names=[f'V{i}' for i in range(3)])
print(df5)
V0 V1 V2 0 c0 c1 c2 1 0 1 2 2 1 2 3 3 2 3 4 V0 V1 V2 0 c0 c1 c2 1 0 1 2 2 1 2 3 3 2 3 4
In [24]:
# skiprows 적용 옵션
df5 = pd.read_csv("test.csv", header=None, prefix='V', skiprows=1)
print(df5)
V0 V1 V2 0 0 1 2 1 1 2 3 2 2 3 4
dtype
전체 원소 type을 바꿔주거나, name으로 접근해서 해당 열만 type을 바꿀 수도 있다.
In [28]:
import numpy as np
df6 = pd.read_csv("test.csv", dtype=np.float64)
print(df6)
c0 c1 c2 0 0.0 1.0 2.0 1 1.0 2.0 3.0 2 2.0 3.0 4.0
In [30]:
df6 = pd.read_csv("test.csv", dtype={'c0':np.float64})
print(df6)
c0 c1 c2 0 0.0 1 2 1 1.0 2 3 2 2.0 3 4
na_values
결측값으로 인식할 문자열을 지정한다
In [31]:
df7 = pd.read_csv("test.csv", na_values='1')
print(df7)
c0 c1 c2 0 0.0 NaN 2 1 NaN 2.0 3 2 2.0 3.0 4
In [32]:
df7 = pd.read_csv("test.csv", na_values=['1', '2'])
print(df7)
c0 c1 c2 0 0.0 NaN NaN 1 NaN NaN 3.0 2 NaN 3.0 4.0
In [ ]:
'인공지능 > 파이토치' 카테고리의 다른 글
torch 라이브러리 - (무한 업로드 예정) (2) | 2022.08.12 |
---|---|
tensor 기본 (0) | 2022.08.12 |