이 게시물에서는 Python에서 CSV 파일을 읽고 쓰는 방법을 살펴보겠습니다. 예제에서는 CSV 모듈과 Pandas를 사용합니다.
Python CSV 모듈을 사용하여 CSV 파일 읽기
이 코드 예제는 orders.csv
라는 파일을 읽습니다. 데이터를 반복합니다.
import csv
f = open("orders.csv", "rt")
orders = csv.reader(f)
for order in orders:
print(order)
f.close()
order.csv 출력:
['OrderID', 'CustomerID', 'OrderDate']
['10248', '4', '10/02/2020']
['10249', '2', '10/02/2020']
['10250', '7', '10/02/2020']
CSV 파일을 사전으로 읽기
DictReader
사용 방법 CSV 파일의 각 행은 사전의 행으로 표시되며 열 헤더가 키로 표시됩니다.
import csv
orders = csv.DictReader(open("orders.csv"))
for order in orders:
print(order)
order.csv 출력:
{'OrderID': '10248', 'CustomerID': '4', 'OrderDate': '10/02/2020'}
{'OrderID': '10249', 'CustomerID': '2', 'OrderDate': '10/02/2020'}
{'OrderID': '10250', 'CustomerID': '7', 'OrderDate': '10/02/2020'}
Pandas를 사용하여 CSV 파일 읽기
Pandas를 사용하려면 먼저 Pandas 라이브러리를 설치해야 합니다.
설치하려면 다음 명령을 실행하십시오. pip3 install pandas
.
import pandas
orders = pandas.read_csv('orders.csv')
print(orders)
order.csv 출력:
OrderID CustomerID OrderDate
10248 4 10/02/2020
10249 2 10/02/2020
10250 7 10/02/2020
Pandas를 사용하여 Python 쓰기 CSV
from pandas import DataFrame
import pandas as pd
order = pd.DataFrame({'OrderID': ['10251', '10252', '10253'],
'CustomerID': ['5', '1', '8'],
'OrderDate': ['11/02/2020', '11/02/2020', '11/02/2020']})
order.to_csv('newOrders.csv', index=False)
newOrders.csv의 출력:
OrderID,CustomerID,OrderDate
10251,5,11/02/2020
10252,1,11/02/2020
10253,8,11/02/2020
기존 CSV 파일에 데이터 추가
csv 파일에 쓸 때 기본 모드는 'w'
입니다. . 기존 CSV 파일에 데이터를 추가하려면 추가 모드를 사용해야 합니다. mode='a'
from pandas import DataFrame
import pandas as pd
order = pd.DataFrame({'OrderID': ['10254'],
'CustomerID': ['3'],
'OrderDate': ['11/02/2020']})
order.to_csv('newOrders.csv', mode='a', index=False, header=False)
newOrders.csv의 출력:
OrderID,CustomerID,OrderDate
10251,5,11/02/2020
10252,1,11/02/2020
10253,8,11/02/2020
10254,3,11/02/2020
CSV 모듈을 사용하여 Python 쓰기 CSV
주의 첫 번째 행은 열 머리글로 사용됩니다.
import csv
with open('orders.csv', 'w', newline='') as file:
order = csv.writer(file)
order.writerow(['OrderID', 'CustomerID', 'OrderDate'])
order.writerow(['10251', '6', '11/02/2020'])
order.writerow(['10252', '9', '11/02/2020'])
order.writerow(['10253', '5', '11/02/2020'])
order.csv 출력:
OrderID,CustomerID,OrderDate
10251,6,11/02/2020
10252,9,11/02/2020
10253,5,11/02/2020
csv 모듈을 사용하여 기존 csv 파일에 추가하려면 'a'
를 전달해야 합니다. open()
매개변수 방법. "제목"도 건너뛰어야 합니다.
예:
with open('orders.csv', 'a', newline='') as file:
order = csv.writer(file)
order.writerow(['10251', '6', '11/02/2020'])
DictWriter로 CSV 파일 작성
DictWriter
를 사용할 수도 있습니다. csv
메소드 CSV 파일을 만들고 작성하는 클래스입니다.
import csv
with open('orders.csv', 'w', newline='') as file:
fieldnames = ['OrderID', 'CustomerID', 'OrderDate']
order = csv.DictWriter(file, fieldnames=fieldnames)
order.writeheader()
order.writerow({'OrderID': '10251', 'CustomerID': 7, 'OrderDate': '11/02/2020'})
order.writerow({'OrderID': '10252', 'CustomerID': 3, 'OrderDate': '11/02/2020'})
order.writerow({'OrderID': '10253', 'CustomerID': 1, 'OrderDate': '11/02/2020'})
order.csv 출력:
OrderID,CustomerID,OrderDate
10251,7,11/02/2020
10252,3,11/02/2020
10253,1,11/02/2020