본문 바로가기
Python 파이썬/pandas

pandas ) I/O 도구

by 하이방가루 2022. 3. 15.
728x90
반응형

Input 가져오기

CSV (Comma-Separated Values)

  쉼표( ,)로 열을 구분하고 줄바꿈으로 행을 구분한다.

# read_csv_sample.csv
c0,c1,c2,c3
0,1,4,7
1,2,5,8
2,3,6,9
import pandas as pd

# csv 파일 read : pd.read_csv(파일명, 옵션, ...)
# dataset/read_csv_sample.csv 파일을 읽어 옴
file_path = './dataset/read_csv_sample.csv'

df = pd.read_csv(file_path)
print(df)
print(df.columns); print()
print(df.index)

실행결과

   c0  c1  c2  c3
0   0   1   4   7
1   1   2   5   8
2   2   3   6   9
Index(['c0', 'c1', 'c2', 'c3'], dtype='object')

RangeIndex(start=0, stop=3, step=1)

header 옵션

  어느 행을 컬럼명으로 인식할지 지정한다.

  기본값은 0으로 0번째 행을 컬럼명으로 지정한다.

df1 = pd.read_csv(file_path,header=None) # 처음 행부터 자료로 인식
print(df1)

실행결과

    0   1   2   3
0  c0  c1  c2  c3
1   0   1   4   7
2   1   2   5   8
3   2   3   6   9

sep 옵션

  구분자를 다른 문자로 읽어들일 수 있다.

  기본값은 쉼표( ,)이다.

  탭(\n)이나 공백(" ")으로 구분하는 경우도 많다.

# read_csv_sample1.csv
c0 c1 c2 c3
0 1 4 7
1 2 5 8
2 3 6 9
file_path = './dataset/read_csv_sample1.csv'
df2 = pd.read_csv(file_path, header=None, sep=':')
print(df2)

실행결과

    0   1   2   3
0  c0  c1  c2  c3
1   0   1   4   7
2   1   2   5   8
3   2   3   6   9

Excel 파일

  read_excel(파일경로)로 읽어올 수 있다.

# excel 파일 read : pd.read_excel(파일명, 옵션, ...)
df = pd.read_excel(파일경로)

Json 파일

  read_json(경로)로 읽어들일 수 있다.

  json은 key가 컬럼명이므로 header옵션이 없다.

# read json 파일 : pd.read_json(파일명)
df = pd.read_json('./dataset/read_json_sample.json')
print(df)

Output 내보내기

CSV로 내보내기

# 데이터프레임 자료를 CSV파일로 저장
data = { 'name':['Jerry','Riah','Paul'],
       'algol':['A','A+','B'],
       'basic':['C','B','B+'],
       'c++':['B+','C','C+'],
       }
df = pd.DataFrame(data)
df.set_index('name',inplace=True)
df.to_csv('./dataset/to_csv_sample.csv')

실행결과

# to_csv_sample.csv
name,algol,basic,c++
Jerry,A,C,B+
Riah,A+,B,C
Paul,B,B+,C+

여러 개의 파일을 엑셀로 저장

# 여러 개의 파일을 엑셀로 저장
data1 = {'name' : [ 'Jerry', 'Riah', 'Paul'],
         'algol' : [ "A", "A+", "B"],
         'basic' : [ "C", "B", "B+"],
          'c++' : [ "B+", "C", "C+"]}

data2 = {'c0':[1,2,3], 
         'c1':[4,5,6], 
         'c2':[7,8,9], 
         'c3':[10,11,12], 
         'c4':[13,14,15]}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

#df1의 'name' 컬럼을 인덱스로 설정
df1.set_index('name',inplace=True)
#df2의 'c0'컬럼을 인덱스로 설정
df2.set_index('c0',inplace=True)

# ExcelWriter를 사용하여 두 개의 파일을 하나의 엑셀 파일에 저장
writer = pd.ExcelWriter('./dataset/two_excel.xlsx')
df1.to_excel(writer, sheet_name='df1')
df2.to_excel(writer, sheet_name='df2')
writer.save()

 

웹 크롤링의 경우 판다스를 이용하기보다는 selenium(셀리니움 ; 셀레늄)이나 beautifulsoup을 이용하는 것이 좋다.

728x90
반응형

댓글