매일 배운 것을 정리하며 기록합니다.
Pandas의 데이터 입출력에 대해서 공부하였습니다.
판다스는 다양한 형태의 외부 파일을 읽어와서 데이터프레임으로 변환하는 함수 제공
판다스 객체인 데이터프레임은 판다스의 모든 함수와 기능을 사용 가능
import pandas as pd
file_path = './read_csv_sample.csv'
df1 = pd.read_csv(file_path)
print(df1)
# c0 c1 c2 c3
# 0 0 1 4 7
# 1 1 2 5 8
# 2 2 3 6 9
print('\n')
df2 = pd.read_csv(file_path, header=None)
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
print('\n')
df3 = pd.read_csv(file_path, index_col=None)
print(df3)
# c0 c1 c2 c3
# 0 0 1 4 7
# 1 1 2 5 8
# 2 2 3 6 9
print('\n')
df4 = pd.read_csv(file_path, index_col='c0')
print(df4)
# c1 c2 c3
# c0
# 0 1 4 7
# 1 2 5 8
# 2 3 6 9
import pandas as pd
# 판다스 DataFrame() 함수로 데이터프레임 변환. 변수 df에 저장
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) # name 열을 인덱스로 지정
print(df)
# algol basic c++
# name
# Jerry A C B+
# Riah A+ B C
# Paul B B+ C+
#! to_csv() 메소드를 사용하여 CSV 파일로 내보내기. 파열명은 df_sample.csv로 저장
df.to_csv("./df_sample.csv")
# df_sample.csv 파일
# name,algol,basic,c++
# Jerry,A,C,B+
# Riah,A+,B,C
# Paul,B,B+,C+
# -*- coding: utf-8 -*-
import pandas as pd
# 판다스 DataFrame() 함수로 데이터프레임 변환. 변수 df1, df2에 저장
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)
df1.set_index('name', inplace=True) # name 열을 인덱스로 지정
print(df1)
print('\n')
# algol basic c++
# name
# Jerry A C B+
# Riah A+ B C
# Paul B B+ C+
df2 = pd.DataFrame(data2)
df2.set_index('c0', inplace=True) # c0 열을 인덱스로 지정
print(df2)
# c1 c2 c3 c4
# c0
# 1 4 7 10 13
# 2 5 8 11 14
# 3 6 9 12 15
# df1을 'sheet1'으로, df2를 'sheet2'로 저장 (엑셀파일명은 "df_excelwriter.xlsx")
writer = pd.ExcelWriter("./df_excelwriter.xlsx")
df1.to_excel(writer, sheet_name="sheet1")
df2.to_excel(writer, sheet_name="sheet2")
writer.save()
sheet 1
sheet 2
Reference : 오승환, 『파이썬 머신러닝 판다스 데이터 분석』, 정보문화사 (2019), p058-080.