Gấu trúc Python chia csv thành nhiều tệp

Đôi khi cần phải chia các tệp lớn thành các tệp nhỏ. Trong bài viết ngắn này, tôi sẽ chia sẻ một script nhỏ được viết bằng Python. Có lẽ bạn có thể phát triển nó hơn nữa. Tuy nhiên, nếu kích thước tệp lớn hơn, bạn nên cẩn thận khi sử dụng các vòng lặp trong mã của mình

Giả sử đầu vào tên tệp đầu vào của bạn. csv. Mã sẽ chia nó thành các tệp mới có tên input_1. csv,. , đầu vào_10. csv. ,

Với tư cách là Kỹ sư dữ liệu, Nhà khoa học dữ liệu hoặc Nhà phân tích dữ liệu, chắc hẳn mỗi người trong chúng ta đều gặp phải nhu cầu về tiện ích phân tách để chia các tệp CSV/dữ liệu khác thành các tệp nhỏ hơn để điều tra hoặc kiểm tra các tình huống

Đoạn code Python này giúp chia file CSV ngẫu nhiên hoặc chia đều dựa trên tham số đầu vào

Thật dễ dàng để chia nhỏ tệp bằng gấu trúc trong Python. Nó có các tính năng mạnh mẽ để chọn một số hàng và bỏ qua một số hàng. Đoạn mã này sắp xếp số hàng để bỏ qua và chọn theo tổng số hàng trong tệp

Sau khi người dùng nhập đường dẫn và tên tệp đầu vào của mình, mã sẽ chạy như trong các bước sau

Bước 1 [Sử dụng Pandas]. Tìm số lượng hàng từ các tập tin

Trong đoạn mã này, sử dụng gấu trúc, chúng tôi đọc CSV và tìm số hàng bằng cách sử dụng chỉ mục

## find number of lines using Pandas
pd_dataframe = pd.read_csv[split_source_file, header=0]
number_of_rows = len[pd_dataframe.index] + 1

Bước 1 [Sử dụng Python truyền thống]. Tìm số lượng hàng từ các tập tin

Ở đây chúng tôi mở tệp và liệt kê dữ liệu bằng vòng lặp để tìm số hàng

## find number of lines using traditional python
fh = open[split_source_file, 'r']
for count, line in enumerate[fh]:
pass
py_number_of_rows = count

Bước 2. Người dùng nhập số dòng trên mỗi tệp [Phạm vi] và tạo một số ngẫu nhiên

Ở đây, mã yêu cầu đầu vào của người dùng để cung cấp số lượng hàng tối thiểu và tối đa cho mỗi tệp và mã tạo ra một số ngẫu nhiên giữa tối thiểu và tối đa

## Incase of equal split, provide the same number for min and max
min_rows = int[input["Minimum Number of rows per file? : "]]
max_rows = int[input["Maximum Number of rows per file? : "]]
## This value changes per file
number_of_rows_perfile = random.randint[min_rows, max_rows]

Trong trường hợp bạn muốn chia đều, hãy cung cấp cùng một số cho tối đa và tối thiểu. Ví dụ: bạn muốn tất cả các tệp chứa 5000 hàng. Nhập 5000 làm đầu vào cho min_rows và max_rows

Bước 3. Đọc dữ liệu từ tệp để chọn và bỏ qua một số hàng bằng gấu trúc

Đây là phần khó khăn. Để sử dụng gấu trúc, chúng tôi tạo một khung dữ liệu từ tệp nguồn. Trong khi đọc dữ liệu, số hàng cần đọc là số được tạo ngẫu nhiên từ bước trước và tổng của các hàng tệp được tạo trước đó là số bỏ qua

## Read CSV file with number of rows and skip respective number of lines
df = pd.read_csv[split_source_file, header=None, nrows = number_of_rows_perfile,skiprows = skip_rows]

Bước 4. Ghi dữ liệu từ khung dữ liệu vào tệp CSV bằng gấu trúc

Ở đây trong bước này, chúng tôi ghi dữ liệu từ khung dữ liệu được tạo ở Bước 3 vào tệp. Tên tệp được tạo dựa trên tên tệp nguồn và số lượng tệp sẽ được tạo

## Write to csv
df.to_csv[split_target_file, index=False, header=False, mode='a', chunksize=number_of_rows_perfile]

Bước 5. Xử lý các hàng bỏ qua và tạo một số hàng sau khi mỗi tệp nhỏ được tạo

Sau khi mỗi tệp nhỏ được tạo, mã cần di chuyển về phía trước để đọc và bỏ qua các hàng. Ngoài ra, phần cuối của tệp không khớp với các giá trị hàng được tạo ngẫu nhiên

## Last file handler
if skip_rows >= number_of_rows:
number_of_rows_perfile = number_of_rows - skip_rows
else:
number_of_rows_perfile = random.randint[min_rows, max_rows]

Bây giờ, hãy nhìn vào những phần này với nhau

Tách tệp CSV ngẫu nhiên hoặc bằng nhau thành các tệp nhỏ

Và bạn có nó rồi đấy. Cảm ơn bạn đã đọc

Chúng tôi hy vọng rằng bạn sẽ tìm thấy bài viết này sâu sắc. Nếu bạn thích, vui lòng chia sẻ liên kết tới bạn bè, gia đình và đồng nghiệp của bạn

Bạn có muốn khuyến khích chúng tôi truyền bá thông tin chi tiết về nhiều chủ đề hơn không, Vui lòng khuyến khích chúng tôi bằng một tách cà phê

Chỉ mất một chút thời gian để theo dõi chúng tôi, Hãy giúp nhau truyền bá kiến ​​thức, Theo dõi chúng tôi trên Phương tiện, Thông tin chi tiết và Dữ liệu, LinkedIn, Twitter để cập nhật các bài viết mới nhất của chúng tôi

Thông tin chi tiết và dữ liệu

Chúng tôi với tư cách là chuyên gia kỹ thuật dữ liệu, rất muốn chia sẻ kinh nghiệm của mình, đây là không gian mà chúng tôi chủ yếu tập trung vào Dữ liệu…

thông tin chi tiết. com

Chỉ tốn 16 xu mỗi ngày để trở thành thành viên được giới thiệu trong Phương tiện thông qua chúng tôi [Đăng ký] và mở khóa toàn bộ tiềm năng đọc các bài báo của chúng tôi và có thể nhiều hơn nữa trong phương tiện

Làm cách nào để tạo nhiều tệp CSV từ tệp CSV hiện có bằng Pandas?

Tạo tập dữ liệu bằng phương pháp khung dữ liệu của gấu trúc rồi lưu vào “Khách hàng. csv” hoặc chúng tôi có thể tải tập dữ liệu hiện có bằng hàm Pandas read_csv[].

Python có thể phân tích tệp CSV không?

Phân tích cú pháp tệp CSV bằng Python khá dễ dàng . Python có thư viện CSV sẵn có, cung cấp chức năng đọc và ghi dữ liệu từ và tới tệp CSV. Có nhiều định dạng có sẵn cho các tệp CSV trong thư viện giúp xử lý dữ liệu thân thiện với người dùng.

Chủ Đề