python 기초
pandas read_csv sep 옵션
난개발자
2024. 8. 25. 16:06
728x90
pandas에서 read_csv 사용시 sep 옵션을 파일의 양식에 맞춰줘야한다
대표적으로 콤마, 공백, tab 으로 나눠진 파일을 읽어오는 방식을 정리하려 한다.
각각 sep 옵션에 ',', ' ', '\n' 을 넣으면 해결.
In [1]:
from IPython.core.display import display, HTML
display(HTML("<style>.container {width:90% !important;}</style>"))
import pandas as pd
import seaborn as sns
In [2]:
df=pd.DataFrame({'A':[0,1,2,3],'B':[4,3,2,1],'C':['1','2','3','4']},index=[0,1,2,3])
df
Out[2]:
A | B | C | |
---|---|---|---|
0 | 0 | 4 | 1 |
1 | 1 | 3 | 2 |
2 | 2 | 2 | 3 |
3 | 3 | 1 | 4 |
In [3]:
# 구분자 종류별로 저장
df.to_csv('data_comma.csv') # default sep : comma
df.to_csv('data_tab.csv', sep = '\t') # sep : tab
df.to_csv('data_space.csv', sep = ' ') # sep : space
In [4]:
# 저장된 형태 확인
def fread(fname):
f = open(fname, 'r')
data = f.read()
f.close()
return data
print('comma separate\n', fread('data_comma.csv'))
print('tab separate\n', fread('data_tab.csv'))
print('space separate\n', fread('data_space.csv'))
comma separate
,A,B,C
0,0,4,1
1,1,3,2
2,2,2,3
3,3,1,4
tab separate
A B C
0 0 4 1
1 1 3 2
2 2 2 3
3 3 1 4
space separate
A B C
0 0 4 1
1 1 3 2
2 2 2 3
3 3 1 4
In [5]:
df_comma=pd.read_csv('data_comma.csv')
print(df_comma)
Unnamed: 0 A B C
0 0 0 4 1
1 1 1 3 2
2 2 2 2 3
3 3 3 1 4
In [6]:
# tab으로 구분된 파일은 sep을 '\t'로 지정해줘야함.
df_tab=pd.read_csv('data_tab.csv')
print(df_tab)
df_tab=pd.read_csv('data_tab.csv',sep='\t')
print(df_tab)
\tA\tB\tC
0 0\t0\t4\t1
1 1\t1\t3\t2
2 2\t2\t2\t3
3 3\t3\t1\t4
Unnamed: 0 A B C
0 0 0 4 1
1 1 1 3 2
2 2 2 2 3
3 3 3 1 4
In [7]:
# space으로 구분된 파일은 sep을 ' '로 지정해줘야함.
df_space=pd.read_csv('data_space.csv')
print(df_space,'\n shape:', df_space.shape, 'space 단위로 나눠지지 않음\n')
df_space=pd.read_csv('data_space.csv',sep=' ')
print(df_space,'\n shape:', df_space.shape, 'space 단위로 나눠짐')
A B C
0 0 0 4 1
1 1 1 3 2
2 2 2 2 3
3 3 3 1 4
shape: (4, 1) space 단위로 나눠지지 않음
Unnamed: 0 A B C
0 0 0 4 1
1 1 1 3 2
2 2 2 2 3
3 3 3 1 4
shape: (4, 4) space 단위로 나눠짐
728x90