Cách tốt nhất để làm điều này là bỏ qua tiêu đề sau khi chuyển đối tượng tệp cho mô -đun
kidfile.readline[] # skip the first line
for row in kidfile:
#parse the line
2:with open['myfile.csv', 'r', newline=''] as in_file:
reader = csv.reader[in_file]
# skip header
next[reader]
for row in reader:
# handle parsed row
Điều này xử lý các tiêu đề CSV đa dòng một cách chính xác.
Câu trả lời cũ hơn:
Có lẽ bạn muốn một cái gì đó như:
firstline = True
for row in kidfile:
if firstline: #skip first line
firstline = False
continue
# parse the line
Một cách khác để đạt được kết quả tương tự là gọi
kidfile.readline[] # skip the first line
for row in kidfile:
#parse the line
3 trước vòng lặp:kidfile.readline[] # skip the first line
for row in kidfile:
#parse the line
Trong Python, trong khi đọc CSV bằng mô -đun CSV, bạn có thể bỏ qua dòng đầu tiên bằng phương thức tiếp theo []. Chúng tôi thường muốn bỏ qua dòng đầu tiên khi tệp & nbsp; tệp chứa hàng tiêu đề và chúng tôi không muốn in hoặc nhập hàng đó. Sau đây là một ví dụ.
Giả sử bạn có một tệp CSV chứa dữ liệu sau với dòng tiêu đề. Bạn muốn đọc và in các dòng trên màn hình mà không có dòng tiêu đề đầu tiên.
DEPTNO,DNAME,LOC 10,ACCOUNTING,NEW YORK 20,RESEARCH,DALLAS 30,SALES,CHICAGO 40,OPERATIONS,BOSTON
Ví dụ để bỏ qua dòng đầu tiên trong khi đọc tệp CSV trong Python
Sử dụng phương thức tiếp theo [] của mô -đun CSV trước để lặp lại để bỏ qua dòng đầu tiên, như được hiển thị trong ví dụ bên dưới.
import csv with open["product_record.csv", "r"] as csv_file: csv_reader = csv.reader[csv_file, delimiter=','] # the below statement will skip the first row next[csv_reader] for lines in csv_reader: print[lines]
Đầu ra
['10', 'ACCOUNTING', 'NEW YORK'] ['20', 'RESEARCH', 'DALLAS'] ['30', 'SALES', 'CHICAGO'] ['40', 'OPERATIONS', 'BOSTON']
Xem thêm:
- Nhập tệp CSV vào bảng Oracle bằng Python
Trong bài viết này, chúng tôi sẽ thảo luận về cách bỏ qua các hàng từ trên cùng, dưới hoặc tại các chỉ số cụ thể trong khi đọc tệp CSV và tải nội dung vào DataFrame. Thư viện Python Panda, cung cấp một chức năng để đọc tệp CSV và tải dữ liệu vào DataFrame trực tiếp cũng bỏ qua các dòng được chỉ định từ tệp CSV, tức là. Nó có thể chấp nhận số lượng lớn các đối số. Nhưng ở đây chúng tôi sẽ thảo luận về một vài lập luận quan trọng chỉ là.Argument: Nó sẽ đọc tệp CSV đã cho bằng cách bỏ qua các dòng được chỉ định và tải các dòng còn lại vào DataFrame. Để sử dụng mô -đun Pandas nhập khẩu này như thế này, Hãy để hiểu biết bởi các ví dụ, Quảng cáo Giả sử chúng ta có một tệp CSV đơn giản.pandas.read_csv[filepath_or_buffer, skiprows=N, ....]
Arguments:import pandas as pd
>>cat users.txt Name,Age,City jack,34,Sydeny Riti,31,Delhi Aadi,16,New York Suse,32,Lucknow Mark,33,Las vegas Suri,35,Patna
Hãy để tải tệp CSV này vào DataFrame bằng read_csv [] và bỏ qua các hàng theo những cách khác nhau,
Bỏ qua n hàng từ trên cùng trong khi đọc tệp CSV sang DataFrame
Trong khi gọi pandas.read_csv [] nếu chúng ta chuyển đối số bỏ qua với giá trị int, thì nó sẽ bỏ qua các hàng đó từ trên cùng trong khi đọc tệp CSV và khởi tạo DataFrame. Ví dụ: nếu chúng ta muốn bỏ qua 2 dòng từ trên cùng trong khi đọc tệp user.csv và khởi tạo một dataFrame, tức là.skiprows argument with int value, then it will skip those rows from top while reading csv file and initializing a dataframe.
For example if we want to skip 2 lines from top while reading users.csv file and initializing a dataframe i.e.
# Skip 2 rows from top in csv and initialize a dataframe usersDf = pd.read_csv['users.csv', skiprows=2] print['Contents of the Dataframe created by skipping top 2 lines from csv file '] print[usersDf]
Đầu ra:
firstline = True
for row in kidfile:
if firstline: #skip first line
firstline = False
continue
# parse the line
0Nó đã bỏ qua 2 dòng trên cùng từ CSV và sử dụng dòng thứ 3 [tại INDEX 2] làm hàng tiêu đề và tải các hàng còn lại từ CSV dưới dạng các hàng dữ liệu trong DataFrame.
Bây giờ điều gì sẽ xảy ra nếu chúng ta muốn bỏ qua một số hàng cụ thể trong khi đọc CSV?
Bỏ qua các hàng tại các vị trí chỉ mục cụ thể trong khi đọc tệp CSV đến DataFrame
Trong khi gọi pandas.read_csv [] nếu chúng ta chuyển đối số bỏ qua dưới dạng danh sách INTS, thì nó sẽ bỏ qua các hàng từ CSV tại các chỉ số được chỉ định trong danh sách. Trong khi đọc tệp user.csv và khởi tạo một dataFrame, tức là.
firstline = True
for row in kidfile:
if firstline: #skip first line
firstline = False
continue
# parse the line
1Đầu ra:
firstline = True
for row in kidfile:
if firstline: #skip first line
firstline = False
continue
# parse the line
2Nó đã bỏ qua các dòng ở vị trí chỉ mục 0, 2 & 5 từ CSV và tải các hàng còn lại từ CSV đến DataFrame.
Bỏ qua n hàng từ trên cùng ngoại trừ tiêu đề trong khi đọc tệp CSV sang DataFrame
Như chúng ta đã thấy trong ví dụ đầu tiên taht trong khi đọc người dùng.csv khi bỏ qua 3 dòng từ trên cùng sẽ làm cho dòng thứ 3 làm hàng tiêu đề. Nhưng đó không phải là hàng có chứa tên cột. Vì vậy, nếu tệp CSV của chúng tôi có hàng tiêu đề và chúng tôi muốn bỏ qua 2 hàng dữ liệu đầu tiên thì chúng tôi cần truyền một danh sách để bỏ qua, tức là.
So, if our csv file has header row and we want to skip first 2 data rows then we need to pass a list to skiprows
i.e.
firstline = True
for row in kidfile:
if firstline: #skip first line
firstline = False
continue
# parse the line
3Đầu ra:
firstline = True
for row in kidfile:
if firstline: #skip first line
firstline = False
continue
# parse the line
4Nó sẽ đọc tệp CSV đến DataFrame bằng cách bỏ qua 2 dòng sau hàng tiêu đề trong tệp CSV.
Bỏ qua các hàng dựa trên điều kiện trong khi đọc tệp CSV sang DataFrame
Chúng ta cũng có thể vượt qua hàm có thể gọi hoặc chức năng Lambda để quyết định bỏ qua hàng nào. Khi truyền hàm có thể gọi làm đối số trong Skiprows trong khi gọi pandas.read_csv [], nó sẽ & nbsp; gọi chức năng trước khi đọc từng hàng để kiểm tra xem các hàng này có nên bị bỏ qua hay không. Nó sẽ vượt qua tư thế chỉ số của mỗi RO trong hàm này. Hãy để các hàng bỏ qua trong tệp CSV có vị trí chỉ mục là bội số 3, hãy bỏ qua mỗi dòng thứ 3 trong khi đọc tệp CSV và tải DataFrame ra khỏi nó,
Let’s skip rows in csv file whose index position is multiple of 3 i.e. skip every 3rd line while reading csv file and loading dataframe out of it,
firstline = True
for row in kidfile:
if firstline: #skip first line
firstline = False
continue
# parse the line
5Đầu ra:
firstline = True
for row in kidfile:
if firstline: #skip first line
firstline = False
continue
# parse the line
6Bỏ qua n hàng từ dưới cùng / chân trang trong khi đọc tệp CSV sang DataFrame
Để bỏ qua n số lượng hàng từ dưới cùng trong khi đọc tệp CSV đến DataFrame, vui lòng chuyển đối số Skipfooter & Engine trong & NBSP; Pandas.Read_CSV [] tức là.
firstline = True
for row in kidfile:
if firstline: #skip first line
firstline = False
continue
# parse the line
7Đầu ra:
firstline = True
for row in kidfile:
if firstline: #skip first line
firstline = False
continue
# parse the line
8Theo mặc định read_csv [] sử dụng động cơ C để phân tích cú pháp nhưng nó không cung cấp chức năng bỏ qua từ dưới cùng. Nếu chúng ta muốn sử dụng chức năng này, chúng ta phải chuyển đối số động cơ cùng với Skipfooter nếu không & nbsp; chúng ta sẽ nhận được một cảnh báo như thế này,skipfooter otherwise we will get a warning like this,
firstline = True
for row in kidfile:
if firstline: #skip first line
firstline = False
continue
# parse the line
9Ví dụ hoàn chỉnh như sau,
kidfile.readline[] # skip the first line
for row in kidfile:
#parse the line
0Output:
kidfile.readline[] # skip the first line
for row in kidfile:
#parse the line
1 & nbsp;