Hướng dẫn how to iterate through csv file python - cách lặp qua tệp csv python


Đã cho tệp CSV

['column1', 'column2']
['foo', 'bar']
['baz', 'qux']
3:

column1,column2
foo,bar
baz,qux

Bạn có thể lặp qua các hàng trong Python bằng thư viện CSV hoặc gấu trúc.

Sử dụng

['column1', 'column2']
['foo', 'bar']
['baz', 'qux']
4:

import csv

filename = 'file.csv'

with open(filename, 'r') as csvfile:
    datareader = csv.reader(csvfile)
    for row in datareader:
        print(row)

Output:

['column1', 'column2']
['foo', 'bar']
['baz', 'qux']

Repl.it demo:

gấu trúc

Cài đặt gấu trúc:

Sử dụng

['column1', 'column2']
['foo', 'bar']
['baz', 'qux']
5 và
['column1', 'column2']
['foo', 'bar']
['baz', 'qux']
6:

import pandas as pd

filename = 'file.csv'
df = pd.read_csv(filename)

for index, row in df.iterrows():
    print(row)

Output:

column1    foo
column2    bar
Name: 0, dtype: object
column1    baz
column2    qux
Name: 1, dtype: object

Repl.it demo:



gấu trúc



Bước 1: Tải tệp CSV bằng phương thức mở trong đối tượng tệp. Bước 2: Tạo đối tượng đầu đọc với sự trợ giúp của phương thức dicTreader bằng FileObject. Đối tượng đầu đọc này còn được gọi là một trình lặp có thể được sử dụng để tìm nạp dữ liệu hàng theo hàng. Bước 3: Sử dụng cho vòng lặp trên đối tượng đầu đọc để có được mỗi hàng.

import os
import csv

pathName = os.getcwd()

numFiles = []
fileNames = os.listdir(pathName)
for fileNames in fileNames:
    if fileNames.endswith(".csv"):
        numFiles.append(fileNames)

for i in numFiles:
    file = open(os.path.join(pathName, i), "rU")
    reader = csv.reader(file, delimiter=',')
    for column in reader:
        print(column[4])

Làm cách nào để đọc một hàng từ tệp CSV trong Python?

for column in reader:
        print(column[4])

Bước 1: Để đọc các hàng trong Python, trước tiên, chúng ta cần tải tệp CSV trong một đối tượng. Vì vậy, để tải tệp CSV vào một đối tượng sử dụng phương thức Open (). Bước 2: Tạo một đối tượng đầu đọc bằng cách chuyển đối tượng tệp được tạo ở trên cho hàm đầu đọc. Bước 3: Sử dụng cho vòng lặp trên đối tượng đầu đọc để có được mỗi hàng.

IndexError: list index out of range

Làm cách nào để trích xuất một cột từ tệp CSV trong Python?

Trong bài viết này, chúng tôi sẽ thảo luận về cách đọc một dòng tệp CSV theo dòng có hoặc không có tiêu đề. Đồng thời chọn các cột cụ thể trong khi lặp qua dòng tệp CSV từng dòng.

Giả sử chúng ta có một tập tin CSV sinh viên.csv và nội dung của nó là,students.csv and its contents are,

Id,Name,Course,City,Session
21,Mark,Python,London,Morning
22,John,Python,Tokyo,Evening
23,Sam,Python,Paris,Morning
32,Shaun,Java,Tokyo,Morning

Chúng tôi muốn đọc tất cả các hàng của dòng tệp CSV này từng dòng và xử lý từng dòng tại một thời điểm.

Ngoài ra, lưu ý rằng, ở đây chúng tôi không muốn đọc tất cả các dòng vào danh sách danh sách và sau đó lặp lại nó, bởi vì đó sẽ không phải là một giải pháp hiệu quả cho tệp CSV lớn, tức là tệp có kích thước tính bằng GBS. Chúng tôi đang tìm kiếm các giải pháp trong đó chúng tôi đọc và xử lý chỉ một dòng tại một thời điểm trong khi lặp qua tất cả các hàng CSV, do đó, bộ nhớ tối thiểu được sử dụng.

Hãy để xem cách làm điều này,

Quảng cáo

Python có mô -đun CSV, cung cấp hai lớp khác nhau để đọc nội dung của tệp CSV, tức là CSV.Reader và CSV.DicTreader. Hãy để thảo luận và sử dụng từng cái một để đọc từng dòng tệp CSV, từng dòng,

Đọc từng dòng tệp CSV bằng CSV.Reader

Với đối tượng lớp đọc mô -đun CSV, chúng tôi có thể lặp lại các dòng của tệp CSV dưới dạng danh sách các giá trị, trong đó mỗi giá trị trong danh sách là giá trị ô. Hãy để hiểu với một ví dụ,

from csv import reader

# open file in read mode
with open('students.csv', 'r') as read_obj:
    # pass the file object to reader() to get the reader object
    csv_reader = reader(read_obj)
    # Iterate over each row in the csv using reader object
    for row in csv_reader:
        # row variable is a list that represents a row in csv
        print(row)

Đầu ra:

import csv

filename = 'file.csv'

with open(filename, 'r') as csvfile:
    datareader = csv.reader(csvfile)
    for row in datareader:
        print(row)
0

Nó lặp lại trên tất cả các hàng của tập tin sinh viên.csv. Đối với mỗi hàng, nó lấy nội dung của hàng đó dưới dạng danh sách và in danh sách đó.

Nó hoạt động như thế nào?

Nó thực hiện các bước sau,

  1. Mở tệp ‘sinh viên.csv, trong chế độ đọc và tạo đối tượng tệp.
  2. Tạo một đối tượng đầu đọc (iterator) bằng cách chuyển đối tượng tệp trong hàm csv.Reader ().
  3. Bây giờ một khi chúng ta có đối tượng đầu đọc này, đó là một trình lặp, sau đó sử dụng trình lặp này với vòng lặp để đọc các hàng riêng lẻ của CSV làm danh sách các giá trị. Trong đó mỗi giá trị trong danh sách đại diện cho một ô riêng lẻ.

Bằng cách này, chỉ có một dòng trong bộ nhớ tại một thời điểm trong khi lặp qua tệp CSV, điều này làm cho nó trở thành một giải pháp hiệu quả bộ nhớ.

Trong ví dụ trước, chúng tôi đã lặp lại tất cả các hàng của tệp CSV bao gồm cả tiêu đề. Nhưng giả sử chúng tôi muốn bỏ qua tiêu đề và lặp qua các hàng còn lại của tệp CSV. Hãy để xem cách làm điều đó,
Let’s see how to do that,

import csv

filename = 'file.csv'

with open(filename, 'r') as csvfile:
    datareader = csv.reader(csvfile)
    for row in datareader:
        print(row)
1

Đầu ra:

import csv

filename = 'file.csv'

with open(filename, 'r') as csvfile:
    datareader = csv.reader(csvfile)
    for row in datareader:
        print(row)
2

Nó lặp lại trên tất cả các hàng của tập tin sinh viên.csv. Đối với mỗi hàng, nó lấy nội dung của hàng đó dưới dạng danh sách và in danh sách đó.

Nó hoạt động như thế nào?

Nó thực hiện các bước sau,

Mở tệp ‘sinh viên.csv, trong chế độ đọc và tạo đối tượng tệp.

Tạo một đối tượng đầu đọc (iterator) bằng cách chuyển đối tượng tệp trong hàm csv.Reader ().
for each row a dictionary is returned, which contains the pair of column names and cell values for that row.
Let’s understand with an example,

import csv

filename = 'file.csv'

with open(filename, 'r') as csvfile:
    datareader = csv.reader(csvfile)
    for row in datareader:
        print(row)
3

Đầu ra:

import csv

filename = 'file.csv'

with open(filename, 'r') as csvfile:
    datareader = csv.reader(csvfile)
    for row in datareader:
        print(row)
4

Nó lặp lại trên tất cả các hàng của tập tin sinh viên.csv. Đối với mỗi hàng, nó lấy nội dung của hàng đó dưới dạng danh sách và in danh sách đó.

Nó hoạt động như thế nào?

Nó thực hiện các bước sau,

  1. Mở tệp ‘sinh viên.csv, trong chế độ đọc và tạo đối tượng tệp.
  2. Tạo một đối tượng đầu đọc (iterator) bằng cách chuyển đối tượng tệp trong hàm csv.Reader ().
  3. Bây giờ một khi chúng ta có đối tượng đầu đọc này, đó là một trình lặp, sau đó sử dụng trình lặp này với vòng lặp để đọc các hàng riêng lẻ của CSV làm danh sách các giá trị. Trong đó mỗi giá trị trong danh sách đại diện cho một ô riêng lẻ.

Bằng cách này, chỉ có một dòng trong bộ nhớ tại một thời điểm trong khi lặp qua tệp CSV, điều này làm cho nó trở thành một giải pháp hiệu quả bộ nhớ.

Trong ví dụ trước, chúng tôi đã lặp lại tất cả các hàng của tệp CSV bao gồm cả tiêu đề. Nhưng giả sử chúng tôi muốn bỏ qua tiêu đề và lặp qua các hàng còn lại của tệp CSV. Hãy để xem cách làm điều đó,

Nó đã bỏ qua hàng tiêu đề của tệp CSV và lặp lại trên tất cả các hàng còn lại của tệp sinh viên.csv. Đối với mỗi hàng, nó lấy nội dung của hàng đó dưới dạng danh sách và in danh sách đó. Trong lần lưu ban đầu, hàng tiêu đề trong một biến riêng biệt và được in vào cuối.
let’s see how to use it,

import csv

filename = 'file.csv'

with open(filename, 'r') as csvfile:
    datareader = csv.reader(csvfile)
    for row in datareader:
        print(row)
5

Đầu ra:

import csv

filename = 'file.csv'

with open(filename, 'r') as csvfile:
    datareader = csv.reader(csvfile)
    for row in datareader:
        print(row)
6

Nó lặp lại trên tất cả các hàng của tập tin sinh viên.csv. Đối với mỗi hàng, nó lấy nội dung của hàng đó dưới dạng danh sách và in danh sách đó.

Nó hoạt động như thế nào?

Nó thực hiện các bước sau,

import csv

filename = 'file.csv'

with open(filename, 'r') as csvfile:
    datareader = csv.reader(csvfile)
    for row in datareader:
        print(row)
7

Đầu ra:

import csv

filename = 'file.csv'

with open(filename, 'r') as csvfile:
    datareader = csv.reader(csvfile)
    for row in datareader:
        print(row)
8

Nó lặp lại trên tất cả các hàng của tập tin sinh viên.csv. Đối với mỗi hàng, nó lấy nội dung của hàng đó dưới dạng danh sách và in danh sách đó.

Đọc các cột cụ thể (theo số cột) trong tệp CSV trong khi lặp lại từng hàng

Lặp lại trên tất cả các hàng học sinh.csv và cho mỗi nội dung in của cột 2 và thứ 3,

import csv

filename = 'file.csv'

with open(filename, 'r') as csvfile:
    datareader = csv.reader(csvfile)
    for row in datareader:
        print(row)
9

Đầu ra:

['column1', 'column2']
['foo', 'bar']
['baz', 'qux']
0

Với CSV.Reader, mỗi hàng tệp CSV được tìm nạp dưới dạng danh sách các giá trị, trong đó mỗi giá trị đại diện cho một giá trị cột. Vì vậy, chọn cột thứ 2 & 3 cho mỗi hàng, chọn các phần tử tại INDEX 1 và 2 từ danh sách.

Ví dụ hoàn chỉnh như sau,

['column1', 'column2']
['foo', 'bar']
['baz', 'qux']
1

Output:

['column1', 'column2']
['foo', 'bar']
['baz', 'qux']
2

Làm thế nào để tôi lặp lại một tệp CSV trong Python?

Bước 1: Tải tệp CSV bằng phương thức mở trong đối tượng tệp. Bước 2: Tạo đối tượng đầu đọc với sự trợ giúp của phương thức dicTreader bằng FileObject. Đối tượng đầu đọc này còn được gọi là một trình lặp có thể được sử dụng để tìm nạp dữ liệu hàng theo hàng. Bước 3: Sử dụng cho vòng lặp trên đối tượng đầu đọc để có được mỗi hàng.

Làm cách nào để đọc một hàng từ tệp CSV trong Python?

Bước 1: Để đọc các hàng trong Python, trước tiên, chúng ta cần tải tệp CSV trong một đối tượng.Vì vậy, để tải tệp CSV vào một đối tượng sử dụng phương thức Open ().Bước 2: Tạo một đối tượng đầu đọc bằng cách chuyển đối tượng tệp được tạo ở trên cho hàm đầu đọc.Bước 3: Sử dụng cho vòng lặp trên đối tượng đầu đọc để có được mỗi hàng.

Làm cách nào để trích xuất một cột từ tệp CSV trong Python?

Làm cách nào để trích xuất một cột từ tệp CSV trong Python ?..
Lập danh sách các cột phải được trích xuất ..
Sử dụng phương thức read_csv () để trích xuất tệp CSV vào khung dữ liệu ..
In dữ liệu bị xáo trộn ..
Biểu đồ khung dữ liệu bằng phương thức Plot () ..
Để hiển thị hình, sử dụng phương thức show () ..

Làm cách nào để đọc nhiều tệp CSV trong vòng lặp Python?

Phương pháp 1: for-loop..
Khởi tạo một danh sách trống: Chúng tôi làm điều này để lưu trữ kết quả của mình khi chúng tôi làm cho chúng trong vòng lặp ..
For-Each Filename, đọc và nối tiếp: Chúng tôi đọc bằng PD.read_csv (), trả về khung dữ liệu cho mỗi đường dẫn.....
Kết hợp từng khung dữ liệu: Chúng tôi sử dụng PD ..