Hướng dẫn python csv select row - python csv chọn hàng

Tôi có một tệp CSV với 100 hàng.

Làm cách nào để đọc các hàng cụ thể?

Tôi muốn đọc nói rằng dòng thứ 9 hoặc dòng thứ 23, v.v.?

Burhan Khalid

165K18 Huy hiệu vàng238 Huy hiệu bạc276 Huy hiệu Đồng18 gold badges238 silver badges276 bronze badges

Hỏi ngày 20 tháng 10 năm 2014 lúc 11:27Oct 20, 2014 at 11:27

1

Bạn có thể sử dụng list comprehension để lọc tệp như vậy:

with open['file.csv'] as fd:
    reader=csv.reader[fd]
    interestingrows=[row for idx, row in enumerate[reader] if idx in [28,62]]
# now interestingrows contains the 28th and the 62th row after the header

Đã trả lời ngày 20 tháng 10 năm 2014 lúc 11:44Oct 20, 2014 at 11:44

ch3kach3kach3ka

Huy hiệu vàng 11,5K44 gold badges29 silver badges27 bronze badges

3

Sử dụng list để lấy tất cả các hàng cùng một lúc làm danh sách. Sau đó truy cập các hàng mục tiêu của bạn bằng chỉ mục/bù của chúng trong danh sách. Ví dụ:

#!/usr/bin/env python

import csv

with open['source.csv'] as csv_file:
    csv_reader = csv.reader[csv_file]
    rows = list[csv_reader]

    print[rows[8]]
    print[rows[22]]

Đã trả lời ngày 22 tháng 2 năm 2018 lúc 21:26Feb 22, 2018 at 21:26

Alan W. Smithalan W. SmithAlan W. Smith

23.8K4 Huy hiệu vàng67 Huy hiệu bạc92 Huy hiệu Đồng4 gold badges67 silver badges92 bronze badges

Bạn chỉ cần bỏ qua số lượng hàng cần thiết:

with open["test.csv", "rb"] as infile:
    r = csv.reader[infile]
    for i in range[8]: # count from 0 to 7
        next[r]     # and discard the rows
    row = next[r]   # "row" contains row number 9 now

Jürgen K.

3.3059 huy hiệu vàng28 Huy hiệu bạc62 Huy hiệu đồng9 gold badges28 silver badges62 bronze badges

Đã trả lời ngày 20 tháng 10 năm 2014 lúc 11:29Oct 20, 2014 at 11:29

Tim Pietzckertim PietzckerTim Pietzcker

320K57 Huy hiệu vàng494 Huy hiệu bạc550 Huy hiệu Đồng57 gold badges494 silver badges550 bronze badges

Bạn có thể đọc tất cả chúng và sau đó sử dụng danh sách bình thường để tìm thấy chúng.

with open['bigfile.csv','rb'] as longishfile:
    reader=csv.reader[longishfile]
    rows=[r for r in reader]
print row[9]
print row[88]

Nếu bạn có một tệp lớn, điều này có thể giết chết bộ nhớ của bạn nhưng nếu tệp có ít hơn 10.000 dòng, bạn không nên gặp phải bất kỳ sự suy giảm lớn nào.

Đã trả lời ngày 20 tháng 10 năm 2014 lúc 11:34Oct 20, 2014 at 11:34

0

Bạn có thể làm điều gì đó như thế này:

with open['raw_data.csv'] as csvfile:
    readCSV = list[csv.reader[csvfile, delimiter=',']]
    row_you_want = readCSV[index_of_row_you_want]

Đã trả lời ngày 25 tháng 4 năm 2018 lúc 18:01Apr 25, 2018 at 18:01

Xtigerxtigerxtiger

1.4351 Huy hiệu vàng15 Huy hiệu bạc 30 Huy hiệu Đồng1 gold badge15 silver badges30 bronze badges

1

Có thể điều này có thể giúp bạn, sử dụng gấu trúc bạn có thể dễ dàng làm điều đó với loc

'''
Reading 3rd record using pandas -> [loc]
Note : Index start from 0 
If want to read second record then 3-1 -> 2
loc[2]` -> read second row and `:` -> entire row details 
'''

import pandas as pd
df = pd.read_csv['employee_details.csv']
df.loc[[2],:]

Đầu ra:

Đã trả lời ngày 17 tháng 10 năm 2021 lúc 7:31Oct 17, 2021 at 7:31

codeholic24codeholic24codeholic24

9154 Huy hiệu bạc19 Huy hiệu đồng4 silver badges19 bronze badges

Bài Viết Liên Quan

Chủ Đề