개발(IT)/Python(파이썬)

파이썬(Python) 데이터처리 - 판다스(pandas) #2

isony 2024. 12. 11. 15:57
반응형

파이썬(Python) 데이터처리 - 판다스(pandas)

1. DataFrame 표 형식의 데이터 읽고 쓰기

- read_csv()

- to_csv()

- read_excel()

- to_excel()

 

1) CSV 파일 읽기

df = pd.read_csv(file_name[, encoding = 인코딩방식,
                             index_col = 열이름,
                             header = 숫자 또는 None,
                             sep = 구분자,
                             names = 열이름,
                             nrows = 읽어올 행수,
                             skiprows = (행1,행2,행3) ])

 

- encoding : 일어올 텍스트파일의 인코딩 방식을 지정합니다. 기본(default : 'utf-8')

- index_col : csv 파일의 데이터중 특정한 열을 DataFrame의 index로 지정합니다. 특정열을 지정할때 열이름으로 지정할 수도 있고, 0부터 시작하는 숫자로 지정할 수도 있습니다. (지정하지 않으면 index를 자동생성합니다.)

- header : csv 파일의 데이터 중 특정한 행을 DataFrame의 열이름(columns)로 지정합니다. names 옵션 없이 header=None 을 지정하면 columns는 0부터 시작하는 숫자로 자동 지정됩니다.

- sep : 데이터 필드 사이를 구분하는 구분자를 지정합니다. 기본(default : ','), 탭('\t')

- names : 데이터의 열이름을 리스트로 지정합니다. 열이름이 없어서 지정하는 경우에는 header=None을 지정합니다.

- nrows : 파일을 읽어올 행의 수를 입력합니다.

- skiprows : 첫행을 기준으로 데이터를 얼마나 건너뛰고 읽어올지를 지정합니다.

                             

(예제)

%%writefile c:/temp/sale.csv
년도,1분기,2분기,3분기,4분기
2020,22,42,53,19
2021,25,46,65,12
2022,25,56,67,16
2023,21,53,72,18
2024,23,67,77,12


(결과)
Writing c:/temp/sale.csv



(예제1)
import pandas as pd

csv_file = "c:/temp/sale.csv"
df = pd.read_csv(csv_file, encoding="utf-8")
df


(결과)
년도	1분기	2분기	3분기	4분기
0	2020	22	42	53	19
1	2021	25	46	65	12
2	2022	25	56	67	16
3	2023	21	53	72	18
4	2024	23	67	77	12



(예제2)
import pandas as pd

csv_file = "c:/temp/sale.csv"
df = pd.read_csv(csv_file, encoding="utf-8", index_col="년도",skiprows=(1,3))
df


(결과)
	1분기	2분기	3분기	4분기
년도				
2021	25	46	65	12
2023	21	53	72	18
2024	23	67	77	12

 

 

2) CSV 파일 쓰기

df.to_csv(file_name[, encoding = 인코딩,
                      index = True 또는 False,
                      header = True 또는 False,
                      sep = 구분자])

 

- encoding : 생성한 csv 테스트 파일의 인코딩 방식을 지정합니다. 기본(default : 'utf-8')

- index : 데이터의 index를 csv 파일에 포함할지 여부를 지정합니다. 기본(default : True)

- header : 데이터의 열이름(columns)를 csv 파일에 포함할지 여부를 지정합니다. 기본(default : True)

- sep : 생성할 csv 테스트 파일의 구분자를 지정합니다. 기본(default : ',')

 

 

(예제)

import pandas as pd

csv_file = "c:/temp/sale.csv"
df = pd.read_csv(csv_file, encoding="utf-8")
df.to_csv("c:/temp/sale_back.csv", header=True)

back_file = "c:/temp/sale_back.csv"
df2 = pd.read_csv(back_file, encoding="utf-8")
df2


(결과)
	Unnamed: 0	년도	1분기	2분기	3분기	4분기
0	0	2020	22	42	53	19
1	1	2021	25	46	65	12
2	2	2022	25	56	67	16
3	3	2023	21	53	72	18
4	4	2024	23	67	77	12

 

 

3) 엑셀(excel) 파일 읽고 쓰기

(Excel 읽기)
df = pd.read_excel(excel_file[, sheet_name = 시트이름,
                                index_col = 숫자 또는 열이름,
                                header = 숫자 또는 None,
                                names = 열이름])

(Excel 쓰기)
df.to_excel(excel_file[, index = True 또는 False,
                         header = True 또는 False,
                         sheet_name = 시트이름,
                         startrow = 숫자,
                         startcol = 숫자])

with pd.ExcelWriter(excel_file, engine = 'xlsxwriter') as excel_writer:
    df.to_excel(excel_writer[, index = True(기본) 또는 False,
                               header = True(기본) 또는 False,
                               sheet_name = 시트이름(기본:'Sheet1') 또는 시트번호(기본:0),
                               startrow = 숫자(기본:0),
                               startcol = 숫자(기본:0)])

 

 

반응형