-
pandas read_csv sep 옵션python 기초 2024. 8. 25. 16:06728x90
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'python 기초' 카테고리의 다른 글
pandas dataframe index, column 가져오고 변경하기 (1) 2024.08.27 sklearn standard scaler (0) 2024.08.27 pandas dadtaframe 수치형 / 범주형 분리 (0) 2024.08.24 zfill string 자릿수 맞추기 (0) 2024.02.26 numpy array slicing이 원본 크기를 넘어 섰을 때 (0) 2024.01.01