Lưu file csv trong python

CSV là một chuẩn định dạng dữ liệu cưc kì đơn giản, trong đó các giá trị được ngăn cách nhau bởi một kí tự đặc biệt. Trong bài viết này SmartData sẽ hướng dẫn các bạn cách để đọc ghi file csv trong python

Cấu tạo của file CSV

Dưới đây là một ví dụ về file CSV, trong đó:

  • Dữ liệu được chia thành nhiều dòng
  • Dữ liêu trong cùng 1 dòng ngăn cách nhau bởi dấu “;”

Lưu file csv trong python
Lưu file csv trong python
Ví dụ về dữ liệu đươc lưu trong file CSV

Bạn có thể download file mẫu tại đây

emailDownload

Đọc file CSV với Python – Sử dụng thư viện CSV

Bạn có thể sử dụng thư viên csv để đọc file định dạng CSV trong Python.

import csv with open('./email.csv') as f: reader = csv.reader(f)

csv.reader sẽ trả về dữ liệu một đối tượng dạng reader. Ta có thể sử dụng vòng for loop để truy vấn dữ liệu trong đối tượng đó.

with open('./email.csv') as f: reader = csv.reader(f) for eachRow in reader: print(eachRow) # Dữ liêu trả về như sau: #['Login email;Identifier;First name;Last name'] #['[email protected];2070;Laura;Grey'] #['[email protected];4081;Craig;Johnson'] #['[email protected];9346;Mary;Jenkins'] #['[email protected];5079;Jamie;Smith']

Truy vấn từng dòng dữ liệu

Để truy vấn từng dòng dữ liêu ta có thể làm như sau:

with open('./email.csv') as f: reader = csv.reader(f) data = [row for row in reader] # in ra giá trị từng dòng print(data[1]); # ['Login email;Identifier;First name;Last name']

Phân tích từng dòng dữ liêu thành dạng mảng

Python mặc định parse các dòng dữ liêu theo dấu phân cách là dấu phẩy. Bạn có thể chuyển đổi dấu phân cách(delimiter) mặc định thành dấu khác bằng cách thêm tham số delimiter vào đầu vào của hàm reader. Khi đó dữ liệu sẽ được trả ra theo dạng mảng ở từng dòng.

with open('./email.csv') as f: reader = csv.reader(f,delimiter=';') data = [row for row in reader] # in ra giá trị từng dòng theo dạng mảng print(data[1]); # ['[email protected]', '2070', 'Laura', 'Grey']

Đọc file CSV với Python – Sử dụng DictReader

with open('./email.csv') as f: reader = csv.DictReader(f, delimiter=";") for row in reader: print(row) #{'Login email': '[email protected]', 'Identifier': '2070', 'First name': 'Laura', 'Last name': 'Grey'} #{'Login email': '[email protected]', 'Identifier': '4081', 'First name': 'Craig', 'Last name': 'Johnson'} #{'Login email': '[email protected]', 'Identifier': '9346', 'First name': 'Mary', 'Last name': 'Jenkins'} #{'Login email': '[email protected]', 'Identifier': '5079', 'First name': 'Jamie', 'Last name': 'Smith'}

Ghi file CSV trong Python với DictWriter

Bạn có thể ghi file trong csv với DictWriter như sau:

import csv with open("test.csv", 'w', encoding='utf-8') as csvfile: writer = csv.DictWriter(csvfile, fieldnames=["email", "name"]) writer.writeheader() writer.writerow({'email': '[email protected]', 'name': 'Magnus'}) writer.writerow({'email': '[email protected]', 'name': 'Carra'}) writer.writerow({'email': '[email protected]', 'name': 'Dong'}) #fieldName là tên các cột # File đầu ra sẽ có dữ liêu như sau: #email,name #[email protected],Magnus #[email protected],Carra #[email protected],Dong

Tổng kết

Trong bài viết trên SmartData đã hướng dẫn các bạn cách đọc ghi file csv trong Python sử dụng một số thư viện của Python. Các bạn có thể tham khảo thêm link sau để xem thêm các bài viết khác về Python của SmartData

Nếu bạn là newbie có thể tham khảo bài viết này để tìm hiểu lộ trình học DA trong 6 tháng của SmartData

CSV (Comma Separated Values) hay giá trị được phân tách bằng dấu phẩy) là một định dạng tệp đơn giản được sử dụng để lưu trữ dữ liệu dạng bảng, chẳng hạn như bảng tính hoặc cơ sở dữ liệu. Tệp CSV lưu trữ dữ liệu dạng bảng (số và văn bản) ở dạng văn bản thuần túy. Mỗi dòng của tệp là một bản ghi dữ liệu. Mỗi bản ghi bao gồm một hoặc nhiều trường, được phân tách bằng dấu phẩy. Việc sử dụng dấu phẩy làm dấu phân tách trường là nguồn gốc của tên cho định dạng tệp này. (Comma Separated Values) hay giá trị được phân tách bằng dấu phẩy) là một định dạng tệp đơn giản được sử dụng để lưu trữ dữ liệu dạng bảng, chẳng hạn như bảng tính hoặc cơ sở dữ liệu. Tệp CSV lưu trữ dữ liệu dạng bảng (số và văn bản) ở dạng văn bản thuần túy. Mỗi dòng của tệp là một bản ghi dữ liệu. Mỗi bản ghi bao gồm một hoặc nhiều trường, được phân tách bằng dấu phẩy. Việc sử dụng dấu phẩy làm dấu phân tách trường là nguồn gốc của tên cho định dạng tệp này.

Nội dung chính Show

  • Cách đọc tệp CSV trong Python
  • Cấu tạo một file CSV trong Python
  • Cách đọc file CSV trong Python:
  • Sử dụng csv.reader ()
  • Sử dụng lớp csv.DictReader ()

Đối với các tệp CSV hoạt động trong python, có một mô-đun có sẵn gọi là csv .csv .

Cách đọc tệp CSV trong Python

# importing csv module

import csv

# csv file name

filename = "aapl.csv"

# initializing the titles and rows list

fields = []

rows = []

# reading csv file

with open(filename, 'r') as csvfile:

    # creating a csv reader object

    csvreader = csv.reader(csvfile)

    # extracting field names through first row

    fields = next(csvreader)

    # extracting each data row one by one

    for row in csvreader:

        rows.append(row)

    # get total number of rows

    print("Total no. of rows: %d"%(csvreader.line_num))

# printing the field names

print('Field names are:' + ', '.join(field for field in fields))

#  printing first 5 rows

print('\nFirst 5 rows are:\n')

for row in rows[:5]:

    # parsing each column of a row

    for col in row:

        print("%10s"%col),

    print('\n')

Output

Lưu file csv trong python

Ví dụ về File CSV trong Python

>>> Xem thêm: Câu lệnh if else trong Python - Tất tần tật về câu lệnh if else trong Python

Cấu tạo một file CSV trong Python

Một file CSV gồm 3 phần:

- Phần đầu tiên: tương ứng với cột đầu tiên trong bảng tính, biểu thị tên của các cột, mỗi cột được ngăn cách với nhau bởi dấu phẩy.

- Phần thứ 2: tương ứng với cột cuối cùng trong bảng tính

- Phần thứ 3: bao gồm các dòng có cấu trúc tương đương nhau, tương ứng với nội dung của các cột giá trị trong bảng tính. Lưu ý, mỗi dòng của văn bản là một dòng giá trị khác nhau trên bảng tính. 

Cách đọc file CSV trong Python:

Có nhiều cách khác nhau để đọc tệp CSV sử dụng mô-đun csv hoặc thư viện pandas trong Python.

- Mô-đun csv: Mô-đun CSV là một trong những mô-đun bằng Python cung cấp các lớp để đọc và ghi thông tin dạng bảng ở định dạng tệp CSV. CSV là một trong những mô-đun bằng Python cung cấp các lớp để đọc và ghi thông tin dạng bảng ở định dạng tệp CSV.

- Thư viện pandas: Thư viện pandas là một trong những thư viện Python mã nguồn mở cung cấp các cấu trúc dữ liệu thuận tiện, hiệu suất cao và các công cụ và kỹ thuật phân tích dữ liệu cho lập trình Python. pandas là một trong những thư viện Python mã nguồn mở cung cấp các cấu trúc dữ liệu thuận tiện, hiệu suất cao và các công cụ và kỹ thuật phân tích dữ liệu cho lập trình Python.

Tệp CSV dưới đây có tên 'Giants.CSV':

Ví dụ về đọc file CSV trong Python

>>> Tham khảo: Khóa học lập trình Python

Sử dụng csv.reader ()

 Lúc đầu, tệp CSV được mở bằng phương thức  open()ở chế độ 'r' (chỉ định chế độ đọc trong khi mở tệp) trả về đối tượng tệp sau đó nó được đọc bằng cách sử dụng phương thức reader() của mô-đun CSV trả về đối tượng trình đọc lặp lại trong suốt các dòng trong tài liệu CSV được chỉ định.Lưu ý: Các từ khóa  ' with'  được sử dụng cùng với các phương pháp open () vì nó đơn giản hoá việc xử lý ngoại lệ và tự động đóng các tập tin CSV.
Lưu ý: Các từ khóa  ' with'  được sử dụng cùng với các phương pháp open () vì nó đơn giản hoá việc xử lý ngoại lệ và tự động đóng các tập tin CSV.

import csv 

# opening the CSV file 

with open('Giants.csv', mode ='r')as file: 

# reading the CSV file 

csvFile = csv.reader(file) 

# displaying the contents of the CSV file 

for lines in csvFile: 

print(lines) 

Output nhận được:

['Organiztion', 'CEO', 'Established']

['Alphabet', 'Sundar Pichai', '02-Oct-15']

['Microsoft', 'Satya Nadella', '04-Apr-75']

['Aamzon', 'Jeff Bezos', '05-Jul-94']

Trong chương trình trên, phương thức reader () được sử dụng để đọc tệp Giants.csv ánh xạ dữ liệu thành danh sách.

Sử dụng lớp csv.DictReader ()

Tương tự như phương pháp trước, tệp CSV lần đầu tiên được mở bằng phương thức open() này sau đó được đọc bằng cách sử dụng DictReader, lớp mô-đun csv hoạt động giống như một trình đọc thông thường nhưng ánh xạ thông tin trong tệp CSV vào từ điển. Dòng đầu tiên của tệp bao gồm các khóa từ điển.

import csv

# opening the CSV file

with open('Giants.csv', mode ='r') as file:

       # reading the CSV file

       csvFile = csv.DictReader(file)

       # displaying the contents of the CSV file

       for lines in csvFile:

            print(lines)

Output

OrderedDict([(‘Organiztion’, ‘Alphabet’), (‘CEO’, ‘Sundar Pichai’), (‘Established’, ’02-Oct-15′)])

OrderedDict([(‘Organiztion’, ‘Microsoft’), (‘CEO’, ‘Satya Nadella’), (‘Established’, ’04-Apr-75′)])

OrderedDict([(‘Organiztion’, ‘Aamzon’), (‘CEO’, ‘Jeff Bezos’), (‘Established’, ’05-Jul-94′)])

Sử dụng phương thức pandas.read_csv (): Rất dễ dàng và đơn giản để đọc tệp CSV bằng các hàm thư viện pandas. Ở đây, phương thức read_csv() trong  thư viện Pandas được sử dụng để đọc dữ liệu từ tệp CSV. Rất dễ dàng và đơn giản để đọc tệp CSV bằng các hàm thư viện pandas. Ở đây, phương thức read_csv() trong  thư viện Pandas được sử dụng để đọc dữ liệu từ tệp CSV.

import pandas

# reading the CSV file

csvFile = pandas.read_csv('Giants.csv')

# displaying the contents of the CSV file

print(csvFile)

Output

Organiztion            CEO Established

0    Alphabet  Sundar Pichai   02-Oct-15

1   Microsoft  Satya Nadella   04-Apr-75

2      Aamzon     Jeff Bezos   05-Jul-94

Kết luận: Bài viết trên đã giúp bạn tìm hiểu về tệp CSV trong Python. Có rất nhiều trang web đưa ra dữ liệu của họ ở định dạng này và tệp CSV cũng được sử dụng rất nhiều trong thế giới kinh doanh. Hy vọng các kiến thức về CSV sẽ hữu ích với bạn trong quá trình học lập trình. Tìm hiểu thêm về các ngôn ngữ lập trình qua các khóa học lập trình bổ ích tại T3H bạn nhé! Bài viết trên đã giúp bạn tìm hiểu về tệp CSV trong Python. Có rất nhiều trang web đưa ra dữ liệu của họ ở định dạng này và tệp CSV cũng được sử dụng rất nhiều trong thế giới kinh doanh. Hy vọng các kiến thức về CSV sẽ hữu ích với bạn trong quá trình học lập trình. Tìm hiểu thêm về các ngôn ngữ lập trình qua các khóa học lập trình bổ ích tại T3H bạn nhé!