Python đếm hàng trong csv



ví dụ/csv/count_csv_rows. py

import csv
import sys
from collections import defaultdict

def check_rows(filename):
    rows = []
    widthes = defaultdict(int)
    with open(filename) as fh:
        rd = csv.reader(fh, delimiter=';')
        for row in rd:
            width = len(row)
            rows.append(width)
            widthes[width] += 1

    #print(widthes)
    if len(widthes.keys()) > 1:
        print("Not all the rows have the same number of cells")
        cell_counts = sorted(widthes.keys(), key=lambda x: widthes[x], reverse=True)
        print(f"Most common number of cells is {cell_counts[0]} with {widthes[ cell_counts[0] ]} rows")
        for count in cell_counts[1:]:
            print(f"  Cells: {count}")
            print(f"  Rows:")
            for row, cells in enumerate(rows):
                if cells == count:
                    print(f"    {row}")
    else:
        values = list(widthes.values())
        print(f"All rows have the same number of cells: {values[0]}")

if len(sys.argv) != 2:
    exit(f"Usage: {sys.argv[0]} FILENAME")

filename = sys.argv[1]

check_rows(filename)

Vì vậy, bạn đang làm việc trên một số dự án phân tích dữ liệu khác nhau và là một phần của một số dự án đó, bạn đang đưa dữ liệu vào từ tệp CSV

Một lĩnh vực bạn có thể muốn xem là Cách so sánh các tiêu đề cột trong CSV với Danh sách trong Python, nhưng điều đó có thể được kết hợp với kết quả đầu ra của bài đăng này

Là một phần của quy trình nếu bạn đang thao tác với dữ liệu này, bạn cần đảm bảo rằng tất cả dữ liệu đã được tải mà không gặp lỗi

Với suy nghĩ này, chúng tôi sẽ tìm cách giúp bạn thực hiện một nhiệm vụ tự động hóa khả thi để đảm bảo rằng

(A) Tất cả các hàng và cột được tính tổng khi tải tệp CSV

(B) Là một phần của quy trình, nếu cùng một tập dữ liệu được xuất, tổng số lần xuất có thể được tính

(C) Điều này đảm bảo rằng tất cả các hàng và cột được yêu cầu trong bảng luôn có sẵn

Mã Python sẽ giúp bạn điều này

Vì vậy, trong đoạn mã dưới đây, có một số điều cần xem xét

Hãy xem tệp CSV mà chúng tôi sẽ đọc trong

Python đếm hàng trong csv

Tổng cộng có mười hàng có dữ liệu. Hàng trên cùng không được tính vào số lượng vì nó được coi là hàng tiêu đề. Ngoài ra còn có bảy cột

Bit đầu tiên này chỉ đọc dữ liệu và nó tự động bỏ qua hàng tiêu đề

import pandas as pd

df = pd.read_csv("csv_import.csv") #===> reads in all the rows, but skips the first one as it is a header.


Output with first line used:
Number of Rows: 10
Number of Columns: 7

Tiếp theo, nó tạo hai biến đếm số hàng và số cột và in chúng ra

Lưu ý rằng nó đã sử dụng df. trục để báo cho trăn không nhìn vào các ô riêng lẻ

total_rows=len(df.axes[0]) #===> Axes of 0 is for a row
total_cols=len(df.axes[1]) #===> Axes of 1 is for a column
print("Number of Rows: "+str(total_rows))
print("Number of Columns: "+str(total_cols))

Và mang tất cả lại với nhau

import pandas as pd

df = pd.read_csv("csv_import.csv") #===> reads in all the rows, but skips the first one as it is a header.

total_rows=len(df.axes[0]) #===> Axes of 0 is for a row
total_cols=len(df.axes[1]) #===> Axes of 0 is for a column
print("Number of Rows: "+str(total_rows))
print("Number of Columns: "+str(total_cols))

Output:
Number of Rows: 10
Number of Columns: 7

Tóm lại, điều này sẽ rất hữu ích nếu bạn đang cố gắng giảm số lượng nỗ lực thủ công trong việc kiểm tra số lượng tệp

Kết quả là nó sẽ giúp với

(A) Tập lệnh xử lý dữ liệu không xóa hàng hoặc cột một cách không cần thiết

(B) Những người chạy theo lô biết kích thước của tập dữ liệu trước khi xử lý có thể đảm bảo rằng họ có dữ liệu họ cần

(C) Nhật ký kiểm soát – cơ sở dữ liệu có thể lưu trữ dữ liệu này để cho thấy rằng những gì đã được xử lý là chính xác

(D) Khi phải tạm dừng quá trình chạy tự động, điều này có thể giúp xác định sự cố và sau đó nhanh chóng khắc phục

(E) Cuối cùng, nếu bạn đang nhận dữ liệu đã thỏa thuận từ bên thứ ba, dữ liệu đó có thể được sử dụng để cảnh báo họ về việc nhận quá nhiều hoặc quá ít thông tin

Kích thước của khung dữ liệu là một yếu tố rất quan trọng để xác định loại thao tác và quy trình có thể được áp dụng cho nó. Ví dụ: nếu bạn có tài nguyên hạn chế và làm việc với các tập dữ liệu lớn, thì điều quan trọng là sử dụng các quy trình không nặng tính toán. Trong hướng dẫn này, chúng ta sẽ xem xét cách nhanh chóng lấy số lượng hàng trong khung dữ liệu gấu trúc

Làm cách nào để lấy số hàng trong một khung dữ liệu?

Python đếm hàng trong csv
Python đếm hàng trong csv

Có một số cách để lấy số hàng của khung dữ liệu gấu trúc. Bạn có thể xác định nó bằng cách sử dụng hình dạng của khung dữ liệu. Hoặc, bạn có thể sử dụng hàm len(). Hãy xem xét từng phương pháp này với sự trợ giúp của một ví dụ

Trước tiên, chúng tôi sẽ tải tập dữ liệu về cơn mưa ở Úc dưới dạng khung dữ liệu gấu trúc từ tệp CSV được lưu cục bộ

import pandas as pd

# read the dataset 
df = pd.read_csv("weatherAUS.csv")
# display the dataframe head
df.head()

đầu ra

Python đếm hàng trong csv
Python đếm hàng trong csv

Bạn có thể thấy rằng dữ liệu có một số tính năng. Hãy xem xét một số phương pháp mà bạn có thể sử dụng để xác định số lượng hàng trong khung dữ liệu

Phương pháp 1 – Nhận số lượng hàng bằng cách sử dụng .shape[0]

Thuộc tính .shape cung cấp cho bạn hình dạng của khung dữ liệu dưới dạng một bộ dữ liệu (row_count, column_count). Nghĩa là, phần tử đầu tiên của bộ cung cấp cho bạn số lượng hàng của khung dữ liệu. Hãy lấy hình dạng của khung dữ liệu trên

# number of rows using .shape[0]
print(df.shape)
print(df.shape[0])

đầu ra

(145460, 23)
145460

Bạn có thể thấy rằng df.shape cung cấp bộ dữ liệu (145460, 23) biểu thị rằng khung dữ liệu df có 145460 hàng và 23 cột. Nếu bạn chỉ muốn cụ thể số lượng hàng, hãy sử dụng

# number of rows using .shape[0]
print(df.shape)
print(df.shape[0])
0

Phương pháp 2 – Lấy số hàng bằng hàm len()

Bạn cũng có thể sử dụng hàm len() tích hợp trong python để xác định số lượng hàng. Hàm này được sử dụng để lấy độ dài của các đối tượng có thể lặp lại. Hãy sử dụng chức năng này để lấy độ dài của khung dữ liệu trên

________số 8_______

đầu ra

145460

Chúng tôi nhận được 145460 là độ dài bằng với số hàng trong khung dữ liệu

Lưu ý rằng cả hai phương pháp trên,

# number of rows using .shape[0]
print(df.shape)
print(df.shape[0])
3 hoặc len() đều là các phép toán thời gian không đổi và do đó khá nhanh. Cả hai đều liên quan đến thao tác tra cứu và không có nhiều khác biệt giữa tốc độ thực thi của chúng, vì vậy bạn có thể sử dụng một trong hai phương pháp mà bạn cảm thấy thoải mái

Tóm lược

Trong hướng dẫn này, chúng tôi đã xem xét cách lấy số lượng hàng trong khung dữ liệu gấu trúc. Sau đây là những điểm chính –

  • Thuộc tính
    # number of rows using .shape[0]
    print(df.shape)
    print(df.shape[0])
    5 của khung dữ liệu gấu trúc trả về bộ dữ liệu (row_count, column_count). Do đó, bạn có thể lấy số lượng hàng của khung dữ liệu gấu trúc từ giá trị đầu tiên của bộ dữ liệu này
  • Ngoài ra, bạn cũng có thể sử dụng hàm len() tích hợp sẵn của Python để lấy số lượng hàng trong khung dữ liệu Pandas

Bạn cũng có thể quan tâm đến -

  • Pandas - Lấy kích thước khung dữ liệu (Có ví dụ)
  • Pandas – Nhận giá trị của một ô trong Dataframe
  • Pandas – Tạo bản sao DataFrame

Với điều này, chúng ta đi đến phần cuối của hướng dẫn này. Các ví dụ về mã và kết quả được trình bày trong hướng dẫn này đã được triển khai trong Jupyter Notebook với python (phiên bản 3. 8. 3) kernel có gấu trúc phiên bản 1. 0. 5


Đăng ký nhận bản tin của chúng tôi để biết thêm thông tin hướng dẫn và hướng dẫn
Chúng tôi không spam và bạn có thể từ chối bất cứ lúc nào


Tác giả

  • Python đếm hàng trong csv
    Python đếm hàng trong csv

    Piyush Raj

    Piyush là một chuyên gia dữ liệu đam mê sử dụng dữ liệu để hiểu mọi thứ tốt hơn và đưa ra quyết định sáng suốt. Trước đây, anh ấy từng là Nhà khoa học dữ liệu cho ZS và có bằng kỹ sư của IIT Roorkee. Sở thích của anh ấy bao gồm xem cricket, đọc sách và làm việc trong các dự án phụ

    Làm cách nào để lấy số hàng trong tệp CSV bằng python pandas?

    Bạn có thể sử dụng len(df. index) để tìm số hàng trong pandas DataFrame, df. index trả về RangeIndex(start=0, stop=8, step=1) và sử dụng nó trên len() để lấy số lượng. Bạn cũng có thể sử dụng len(df) nhưng cách này hoạt động chậm hơn khi so sánh với len(df.

    Có bao nhiêu hàng trong tệp CSV?

    tệp csv có giới hạn 32.767 ký tự trên mỗi ô. Excel có giới hạn 1.048.576 hàng và 16.384 cột trên mỗi trang tính. Tệp CSV có thể chứa nhiều hàng hơn. Bạn có thể đọc thêm về các giới hạn này và các giới hạn khác từ bài viết hỗ trợ của Microsoft tại đây.