Hướng dẫn loop csv python - vòng lặp csv python


Đã cho tệp CSV

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

Nội phân Chính showShow

  • Đọc từng dòng tệp CSV bằng CSV.Reader
  • Đọc từng dòng tệp CSV bằng cách sử dụng đối tượng DicTreader mô -đun CSV
  • Nhận tên cột từ tiêu đề trong tệp CSV
  • Đọc các cột cụ thể từ tệp CSV trong khi lặp lại từng dòng
  • Làm cách nào để mở và lặp lại một tệp CSV trong Python?
  • Làm cách nào để lặp lại một tệp CSV trong gấu trúc?
  • Làm cách nào để đi qua một cột trong tệp CSV trong Python?
  • Làm cách nào để đọc một tệp CSV liên tiếp trong Python?

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


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

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])

Sử dụng

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

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

Vui lòng hỗ trợ trang web này và tham gia Discord của chúng tôi!

IndexError: list index out of range

Vì vậy, tôi đã thấy điều này được thực hiện là những câu hỏi khác được hỏi ở đây nhưng tôi vẫn hơi bối rối. Tôi đã học Python3 trong vài ngày qua và hình dung tôi bắt đầu làm việc trong một dự án để thực sự bị bẩn tay. Tôi cần lặp qua một lượng tệp CSV nhất định và thực hiện chỉnh sửa cho các tệp đó. Tôi gặp rắc rối khi đi đến một cột cụ thể và cả các vòng lặp trong Python nói chung. Tôi đã quen với quy ước (int i = 0; i

Vấn đề của tôi rơi vào dòng này:

Vì vậy, trong các tài liệu, nó nói rằng cột là biến và trình đọc là những gì tôi đang lặp lại. Nhưng khi tôi viết 4, tôi gặp lỗi này: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

Điều đó có nghĩa là gì? Nếu tôi viết 0 thay vì 4, nó sẽ ra tất cả các giá trị trong cột 0 ô 0 của mỗi tệp CSV. Về cơ bản, tôi cần nó đi qua hàng đầu tiên của mỗi tệp CSV và tìm một giá trị cụ thể và sau đó đi qua toàn bộ cột đó. Cảm ơn trước!

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à,

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.

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

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

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)

Quảng cáo

import csv

filename = 'file.csv'

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

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,

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ụ,

Đầu ra:

  1. 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 đó.
  2. Nó hoạt động như thế nào?
  3. 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 ().
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

Quảng cáo

import csv

filename = 'file.csv'

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

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,

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ụ,

Đầu ra:

Đọc từng dòng tệp CSV bằng cách sử dụng đối tượng DicTreader mô -đun CSV

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 đó.
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 từ điển 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 DicTreader (iterator) bằng cách chuyển đối tượng tệp trong csv.dictreeReader ().
  3. Bây giờ một khi chúng ta có đối tượng DicTreader này, đó là một trình lặp. Sử dụng đối tượng lặp này với vòng lặp để đọc các hàng riêng lẻ của CSV làm từ điển. Trong đó mỗi cặp trong từ điển này đại diện cho tên cột & giá trị cột cho hàng đó.

Nó là một giải pháp hiệu quả bộ nhớ, bởi vì tại một thời điểm chỉ có một dòng trong bộ nhớ.

Nhận tên cột từ tiêu đề trong tệp CSV

Lớp DicTreader có chức năng thành viên trả về tên cột của tệp CSV làm danh sách. Hãy để xem cách sử dụng nó,
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

Đọc các cột cụ thể từ tệp CSV trong khi lặp lại từng dòng

Đọc các cột cụ thể (theo tên 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 của tập tin học sinh.csv từng dòng, nhưng chỉ in hai cột cho mỗi hàng,

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

DicTreader trả về một từ điển cho mỗi dòng trong quá trình lặp. Như trong các phím từ điển này là tên cột và giá trị là các giá trị ô cho cột đó. Vì vậy, để chọn các cột cụ thể trong mỗi hàng, chúng tôi đã sử dụng tên cột với đối tượng từ điển.

Đọ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 cách nào để mở và lặp lại một tệp CSV trong Python?

Câu trả lời của CSV Python..

Nhập CSV ..

fileName = 'file.csv'.

với Open (tên tệp, 'r') là csvfile:.

DataReader = CSV. người đọc (CSVFILE).

Đối với hàng trong DataReader:.

print(row).

Làm cách nào để lặp lại một tệp CSV trong gấu trúc?

Làm thế nào để lặp lại trên các hàng trong một khung dữ liệu trong gấu trúc..

Nhập GANDAS dưới dạng thời gian nhập khẩu PD ..

df = pd. read_csv ('College.csv').

DF. Đầu (1) ra [4]: ​​....

Trong [5]: Len (DF) ra [5]: ....

Trong [6]: st = thời gian. thời gian () cho chỉ mục, hàng trong df. ....

In (END-ST) 0.10507607460021973 ..

Trong [8]: st = thời gian. thời gian () cho hàng trong df. ....

In (END-ST) 0.010402679443359375 ..

Làm cách nào để đi qua một cột trong tệp CSV trong Python?

Python là base0, có nghĩa là nó bắt đầu đếm ở 0 nên cột đầu tiên sẽ là cột [0], thứ hai sẽ là cột [1]. Đối với hàng trong đầu đọc: Bởi vì người đọc lặp qua các hàng, không phải các cột. Mã này các vòng lặp qua mỗi hàng và sau đó mỗi cột trong hàng đó cho phép bạn xem nội dung của mỗi ô.for row in reader: because reader iterates through the rows, not the columns. This code loops through each row and then each column in that row allowing you to view the contents of each cell.

Làm cách nào để đọc một tệp CSV liên tiếp trong Python?

Tệp CSV trong chế độ đọc bằng hàm Open (). Sau đó, CSV. Reader () được sử dụng để đọc tệp, trả về một đối tượng đọc có thể lặp lại. Đối tượng đầu đọc sau đó được lặp bằng cách sử dụng một vòng lặp để in nội dung của mỗi hàng.