Làm cách nào để đọc tệp được phân tách bằng dấu cách trong gấu trúc Python?

Mọi dự án Phân tích dữ liệu đều yêu cầu một bộ dữ liệu. Các bộ dữ liệu này có sẵn ở nhiều định dạng tệp khác nhau, chẳng hạn như. xlsx,. json,. csv,. html. Thông thường, các bộ dữ liệu chủ yếu được tìm thấy trong. định dạng csv. Các tệp CSV [hoặc Giá trị được phân tách bằng dấu phẩy], như tên gợi ý, có các mục dữ liệu được phân tách bằng dấu phẩy. Tệp CSV là tệp văn bản thuần túy có kích thước tệp nhẹ hơn. Ngoài ra, các tệp CSV có thể được xem và lưu ở dạng bảng trong các công cụ phổ biến như Microsoft Excel và Google Trang tính

Dấu phẩy được sử dụng trong tệp CSV được gọi là dấu phân cách. Hãy nghĩ về các dấu phân cách như một ranh giới ngăn cách để phân biệt giữa hai mục dữ liệu tiếp theo bất kỳ

Đọc tệp CSV bằng Pandas

Để đọc các tệp CSV hoặc dấu phân cách read_csv này, chúng tôi sử dụng một chức năng của thư viện Pandas có tên là read_csv[]

df = pd.read_csv[]

Hàm read_csv[] có hàng chục tham số, trong đó một tham số là bắt buộc và các tham số khác là tùy chọn để sử dụng trên cơ sở đặc biệt. Tham số bắt buộc này chỉ định tệp CSV mà chúng tôi muốn đọc. Ví dụ,

Ghi chú. Hãy nhớ sử dụng hai dấu gạch chéo ngược trong khi chỉ định đường dẫn tệp

abc. tệp csv

[Nguồn – Máy Tính Cá Nhân]

Thông số sep

Một trong các tham số tùy chọn trong read_csv[] là sep, tên rút gọn của dấu phân cách. Toán tử này là dấu phân cách mà chúng ta đã nói trước đây. Tham số sep này cho trình thông dịch biết, dấu phân cách nào được sử dụng trong tập dữ liệu của chúng tôi hoặc theo thuật ngữ của Layman, cách các mục dữ liệu được phân tách trong tệp CSV của chúng tôi

Giá trị mặc định của tham số sep là dấu phẩy [,] có nghĩa là nếu chúng ta không chỉ định tham số sep trong hàm read_csv[] thì được hiểu rằng tệp của chúng ta đang sử dụng dấu phẩy làm dấu phân cách. Do đó, trong đoạn mã trước của chúng tôi, chúng tôi đã không chỉ định tham số sep, có thể hiểu rằng tệp của chúng tôi có dấu phẩy là dấu phân cách

Sử dụng các dấu phân cách khác

Thường thì nó có thể xảy ra, tập dữ liệu trong. định dạng tệp csv có các mục dữ liệu được phân tách bằng dấu phân cách không phải dấu phẩy. Điều này bao gồm dấu chấm phẩy, dấu hai chấm, không gian tab, thanh dọc, v.v. Trong những trường hợp như vậy, chúng ta cần sử dụng tham số sep bên trong read. hàm csv[]. Ví dụ: một tệp có tên Ví dụ. csv là tệp CSV được phân tách bằng dấu chấm phẩy

Thí dụ. tệp csv

[Nguồn – Máy Tính Cá Nhân]

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ';']

Khi thực thi mã này, chúng tôi nhận được một khung dữ liệu có tên là df

Khung dữ liệu df

[Nguồn – Máy Tính Cá Nhân]

Thanh phân cách dọc

Do đó, tệp được phân cách bằng thanh dọc có thể được đọc bởi

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = '|']

Máy tách đại tràng

Và một tệp được phân cách bằng dấu hai chấm có thể được đọc bởi

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']

Dấu tách tab

Thường thì chúng ta có thể bắt gặp các bộ dữ liệu có định dạng tệp. tsv. Này. các tệp tsv có các giá trị được phân tách bằng tab trong chúng hoặc chúng ta có thể nói rằng nó có không gian tab dưới dạng dấu phân cách. Những tập tin như vậy có thể được đọc bằng cách sử dụng cùng một. read_csv[] của pandas và chúng ta cần chỉ định dấu phân cách. Ví dụ

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.tsv", sep = 't']

Tương tự, các dấu phân cách khác có thể được sử dụng dựa trên dấu phân cách đã xác định từ dữ liệu của chúng tôi

Phần kết luận

Việc kiểm tra xem dữ liệu của chúng tôi đang được lưu trữ như thế nào trong bộ dữ liệu của chúng tôi luôn hữu ích. Hiểu dữ liệu là cần thiết trước khi bắt đầu làm việc với nó. Dấu phân cách [dấu phân cách pandas đọc csv] có thể được xác định dễ dàng bằng cách kiểm tra dữ liệu. Dựa trên kiểm tra của chúng tôi, chúng tôi có thể sử dụng dấu phân cách có liên quan trong tham số sep

Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của Tác giả.  

Tại sao chúng ta quan tâm đến khoảng trống? . Tạo dữ liệu thử nghiệm 1M và kiểm tra hiệu suất

Ảnh của Kelly Sikkema trên Bapt

đồng nghiệp của tôi nói rằng. csv không phải là một bài luận nên chúng tôi không mong đợi bất kỳ khoảng trống nào phía sau dấu phẩy [hoặc bất kỳ dấu phân cách nào khác]. Những người tạo ra rfc4180 thường được hiểu là hướng dẫn cho các tệp CSV cũng có cùng quan điểm. Tuy nhiên, các nhà phát triển sáng tạo cung cấp cho. xuất csv với khoảng trắng không cần thiết. Những ký tự phụ này không chỉ làm tăng kích thước dữ liệu của chúng tôi mà còn có thể gây ra rắc rối lớn hơn nhiều

Trong bài này chúng ta sẽ

  • Xem lại lý do tại sao chúng tôi quan tâm đến khoảng trắng trong CSV
  • Thiết lập điểm chuẩn bằng phương pháp
    df = pd.read_csv[io.StringIO[data]]
    5 của Pandas
  • Khám phá tham số
    df = pd.read_csv[io.StringIO[data]]
    6
  • Hãy thử dấu tách regex
  • Bỏ dấu tách regex do vấn đề về dấu ngoặc kép
  • Áp dụng regex trên dataFrame đã tải
  • Kiểm tra cột áp dụng
    df = pd.read_csv[io.StringIO[data]]
    7 một cách khôn ngoan trên tất cả các cột chuỗi
  • Giải thích tại sao NaN lại quan trọng
  • Tạo 1 triệu dòng dữ liệu thử nghiệm bằng cách sử dụng
    df = pd.read_csv[io.StringIO[data]]
    8
  • Đo tốc độ và hiệu quả trong việc dọn dẹp khoảng trắng của từng thuật toán

Như thường lệ, bạn có thể làm theo mã cùng với tôi bằng sổ ghi chép Jupiter chứa tất cả các bài tập có thể tải xuống từ GitHub

Tại sao khoảng trắng là một vấn đề?

  1. So sánh thất bại

Chuỗi có và không có khoảng trống không giống nhau.

df = pd.read_csv[io.StringIO[data]]
9 hai chữ ABC này không bằng nhau nhưng chênh lệch rất nhỏ nên bạn thường không để ý. Nếu không có dấu ngoặc kép kèm theo chuỗi, bạn khó có thể
df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ';']
00. Nhưng các chương trình máy tính không thể hiểu được trong quá trình diễn giải và nếu các giá trị này là khóa hợp nhất, bạn sẽ nhận được kết quả trống

2. Giá trị NaN

Các chuỗi, dấu cách và tab trống được coi là các giá trị trống được biểu thị dưới dạng NaN trong Pandas trong nhiều trường hợp. Nhưng một số lượng không gian không xác định không được tự động chuyển thành giá trị NaN và bạn có thể nhận được kết quả không mong muốn, vì ví dụ:

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ';']
01 trong khi
df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ';']
02

3. Kích thước

Mặc dù các khoảng trắng gần như vô hình, nhưng hãy xếp hàng triệu khoảng trắng vào tệp và chúng sẽ chiếm một khoảng không gian. Trong trường hợp khác, chúng có thể vượt quá giới hạn kích thước của cột cơ sở dữ liệu của bạn, dẫn đến lỗi trong trường hợp tốt hơn và cắt bớt ký tự cuối cùng, vị trí của các vị trí đó đã bị đánh cắp bởi khoảng trống phía trước

Làm cách nào để xử lý các khoảng trắng trong Pandas?

Hãy bắt đầu khám phá các tùy chọn mà chúng tôi có trong thư viện Pandas của Python để xử lý các khoảng trắng trong CSV. Là một điểm chuẩn, hãy chỉ cần nhập. csv với khoảng trống sử dụng hàm

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ';']
03

Để mô tả cách chúng tôi có thể xử lý các khoảng trắng, chúng tôi sẽ sử dụng tập dữ liệu 4 hàng [Để kiểm tra hiệu suất của từng phương pháp, chúng tôi sẽ tạo một triệu bản ghi và thử xử lý nó ở cuối bài viết này]. Tập dữ liệu của chúng tôi chứa các cột này

  • Id xác định từng hàng
  • Phố có khoảng trắng ở đầu và ở cuối
  • Thành phố có không gian trống hàng đầu
  • Mức lương là con số
  • Ngày có định dạng ngày
df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ';']
4

Bạn có thể thấy rằng dữ liệu chứa các khoảng trắng không cần thiết và mục tiêu của chúng tôi là loại bỏ chúng một cách hiệu quả nhất có thể

Vì vậy, chúng tôi không phải lưu trữ những dữ liệu này vào một. csv mà chúng ta sẽ đọc sau này, chúng ta sẽ chuyển nó cho Pandas bằng cách sử dụng

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ';']
04

df = pd.read_csv[io.StringIO[data]]

Để đo lường mức độ thành công của chúng ta, tôi sẽ tạo một hàm

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ';']
05 [xem bên dưới] để lặp qua tất cả các cột và tính toán

  • cột chuỗi. tổng chiều dài của dữ liệu trong mỗi hàng
  • cột số. tổng của tất cả các giá trị
  • Các cột khác. đếm hàng

Theo tùy chọn, nếu một từ điển có độ dài

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ';']
06 được cung cấp, nó sẽ so sánh độ dài hoặc tổng đo được với kỳ vọng mà tôi hiển thị dưới dạng một hàng trong khung dữ liệu. Điểm chuẩn của chúng tôi đạt được

Khung dữ liệu cuối cùng của Pandas so sánh độ dài thực và dự kiến

Hãy chuyển đổi khung dữ liệu để dễ đọc hơn_______10

Sử dụng skipinitialspace

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ';']
07 được viết bằng C để đạt hiệu quả, nên sử dụng các tham số của phương pháp này là lựa chọn tốt nhất để xử lý các khoảng trắng. Với mục đích này, có
df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ';']
08 loại bỏ tất cả các khoảng trắng sau dấu phân cách

Kết quả sử dụng skipinitialspace gần như hoàn hảo

Vì cột Thành phố chỉ chứa các khoảng trắng ở đầu nên tất cả chúng đã bị xóa. Hàng cuối cùng của cột Steet cũng đã được sửa và hàng chỉ chứa hai khoảng trống được chuyển thành NaN, vì hai khoảng trắng đã bị xóa và pandas đại diện cho khoảng trống dưới dạng NaN [trừ khi có quy định khác - xem bên dưới. ]

Nhưng phải làm gì với các khoảng trống ở cuối hàng, giữa ký tự hoặc dữ liệu cuối cùng và dấu phân cách. Pandas không có bất kỳ tham số

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ';']
09 nào nên chúng tôi phải sử dụng một cách tiếp cận khác

Dấu phân cách biểu thức chính quy

Bạn có biết rằng bạn có thể sử dụng các dấu phân cách regex trong gấu trúc không?

Ngoài ra, dấu phân cách dài hơn 1 ký tự và khác với

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = '|']
30 sẽ được hiểu là biểu thức chính quy và cũng sẽ buộc sử dụng công cụ phân tích cú pháp Python. Lưu ý rằng các dấu phân cách regex có xu hướng bỏ qua dữ liệu được trích dẫn. Ví dụ về biểu thức chính quy.
df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = '|']
31

Trong trường hợp của chúng tôi, chúng tôi có thể thử dấu tách

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = '|']
32.
df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = '|']
33 có nghĩa là bất kỳ số khoảng trống nào,
df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = '|']
34 đại diện cho dấu phẩy. Trong sổ ghi chép Jupiter, bạn cũng phải chỉ định
df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = '|']
35 , vì các dấu tách biểu thức chính quy được xử lý thông qua tập lệnh python, không phải mã dựa trên c gốc. Hãy kiểm tra kết quả

Tất cả các khoảng trắng mà chúng tôi không muốn đã bị xóa và tất cả các cột đều có kiểu dữ liệu dự kiến

Kết quả có vẻ hoàn hảo. Tất cả các khoảng trắng không mong muốn đã bị xóa [tất cả cột _diff bằng 0] và tất cả các cột có kiểu dữ liệu và độ dài dự kiến. Nhưng tất cả những gì lấp lánh không phải là vàng

Dấu tách Regex có dấu ngoặc kép

Có một lưu ý quan trọng trong sách hướng dẫn nói rằng.

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = '|']
36

Dữ liệu của chúng tôi không được trích dẫn. Nhưng nếu đúng như vậy, giả sử đường phố sẽ được trích dẫn

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = '|']
3

Sau đó, dấu tách regex sẽ không chỉ bỏ sót các khoảng trống bên trong dấu ngoặc kép mà còn xem xét phần trích dẫn của dữ liệu và số lượng khoảng trống thừa của chúng tôi thậm chí sẽ tăng lên

Dấu tách Regex gặp khó khăn với dữ liệu được trích dẫn, dẫn đến không chỉ các khoảng trống còn lại trong tập dữ liệu mà cả các trích dẫn cũng được coi là một phần hợp lệ của chuỗi

Một kịch bản thậm chí còn tồi tệ hơn sẽ xảy ra nếu các trích dẫn ở đó có mục đích, để che chắn dấu phân cách bên trong chuỗi, trong trường hợp của chúng tôi là dấu phẩy bên trong tên đường, khỏi bị coi là dấu phân cách.

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = '|']
37 được bảo vệ bởi dấu ngoặc kép là một chuỗi hợp lệ có chứa dấu phẩy, nhưng nếu chúng ta sử dụng dấu phân cách biểu thức chính quy, nó sẽ nghĩ rằng có một dấu phân cách khác và không thành công

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
2

Vì vậy, dấu tách regex thực sự không phải là một tùy chọn

Áp dụng Regex sau đó

Chúng ta vẫn có thể sử dụng các biểu thức chính quy, nhưng chỉ ở bước thứ hai. Chúng tôi sẽ chia việc đọc CSV thành 3 bước

  • đọc. csv, xem xét các dấu ngoặc kép với tiêu chuẩn
    df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = '|']
    38
  • thay thế các khoảng trống
  • sau khi khoảng trắng bị xóa, hãy chuyển “” thành NaN

Để dễ dàng đo lường hiệu suất của một hoạt động như vậy, hãy sử dụng một chức năng

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
4

read_csv xử lý các trích dẫn và áp dụng biểu thức chính quy sẽ xóa các khoảng trống

Kết quả cuối cùng rất đáng khích lệ. Tất cả các cột có độ dài và loại dự kiến. Nhưng hiệu suất có tốt không?

Tước dây

Python có một phương thức riêng để xóa khoảng trắng phía trước và cuối —

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = '|']
39 và chúng ta có thể dễ dàng sử dụng nó trên dữ liệu của mình. Bởi vì đó là một hoạt động chuỗi, chúng tôi cần sử dụng
df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
20 và nó chỉ có thể được áp dụng trên các cột chuỗi. Vì lý do đó, chúng tôi phải kiểm tra xem cột có định dạng chuỗi không

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
7

Một lần nữa, chúng tôi đưa thao tác vào một chức năng để chúng tôi có thể sử dụng nó sau này trong bài kiểm tra hiệu suất. Như trước chúng ta sẽ biến tất cả chuỗi rỗng thành NaN

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
8

Các kết quả giống như sử dụng các biểu thức thông thường

Sử dụng

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
20 trên các cột chuỗi dẫn đến chất lượng kết quả như nhau. Sẽ rất thú vị khi so sánh tốc độ của từng phương pháp

Ghi chú. Không sử dụng

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
22 nhưng
df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
23 vì
df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
24 không thành công trên các giá trị NaN về mặt kỹ thuật là số float và không phải chuỗi

giá trị NaN

Tại sao chúng tôi chuyển tất cả các chuỗi trống thành NaN?

‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1. #IND', '-1. #QNAN’, ‘-NaN’, ‘-nan’, ‘1. #IND', '1. #QNAN’, ‘’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’

Nó có lý do chính đáng vì các giá trị NaN hoạt động khác với các chuỗi rỗng “”

  • df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ';']
    01 trong khi
    df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
    26
  • bạn có thể áp dụng các phương pháp
    df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
    27 hoặc
    df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
    28 trên các giá trị NaN

Nhưng gấu trúc chỉ biến một chuỗi rỗng

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
29 thành NaN, không phải
df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
40 một khoảng trắng, hai khoảng trắng, tab hoặc tương đương với khoảng trống. Đó là lý do tại sao chúng ta phải đối xử riêng biệt với bất kỳ ký tự nào sau khi. csv đã được tải vào dataFrame

Kiểm tra hiệu suất

Tạo dữ liệu thử nghiệm

Mỗi cách tiếp cận được đề xuất nhanh như thế nào? . Hãy chuẩn bị một số dữ liệu để xem tốc độ thực của các hoạt động

Một vài dòng luôn được xử lý trong nháy mắt, vì vậy chúng tôi cần một lượng dữ liệu đáng kể để kiểm tra hiệu suất, giả sử 1 triệu bản ghi. Với mục đích này, tôi muốn dùng thử thư viện

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
41 của python có giao diện nhanh để tạo tên, địa chỉ và dữ liệu khác ngẫu nhiên

df = pd.read_csv[io.StringIO[data]]
0

Tôi đang tạo một danh sách chứa một triệu hàng và 3 cột

  • địa chỉ có thêm hai khoảng trống ở đầu
  • tên có khoảng trắng bắt đầu và kết thúc
  • và số ngẫu nhiên được biểu thị dưới dạng chuỗi có khoảng trống

DataFrame được tạo có các tham số sau

df = pd.read_csv[io.StringIO[data]]
1

Bởi vì các địa chỉ được tạo bởi faker không chỉ chứa dấu phẩy mà còn cả dấu ngắt dòng, chúng sẽ được đặt trong dấu ngoặc kép khi chúng tôi xuất chúng sang csv. địa chỉ ví dụ

df = pd.read_csv[io.StringIO[data]]
0

Có nhiều phương pháp mà

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
41 cung cấp. Nếu bạn muốn một địa chỉ một dòng, hãy sử dụng
df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
43 chẳng hạn hoặc
df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
44. Bạn có thể nghiên cứu tài liệu về faker tại đây

Hiệu suất trên 1 triệu mẫu

Để chắc chắn, chúng tôi đã đo thời gian xử lý hợp lý và không bị ảnh hưởng bởi một số mức sử dụng CPU cao nhất, chẳng hạn như. g. khi phần mềm diệt virus chạy, chúng tôi sẽ kiểm tra 7 lần mỗi phương pháp nêu trên

df = pd.read_csv[io.StringIO[data]]
1

Bạn có thể phát hành khối mã này cho từng tình huống, nhưng tốt hơn hết là sử dụng khả năng của python để lưu trữ các hàm trong các biến và chuẩn bị một từ điển chứa tất cả các hàm và lặp lại nó

df = pd.read_csv[io.StringIO[data]]
2

Mỗi phím trong dict bao gồm một chức năng và các tham số của nó - skipinitialspace, dấu phân cách, động cơ, v.v. Đường dẫn của dữ liệu luôn giống nhau nên chúng ta không phải lặp lại nhiều lần khi làm tham số

Chúng tôi cũng sẽ lưu trữ thời gian xử lý và tính toán số liệu thống kê bằng cách sử dụng

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
45

df = pd.read_csv[io.StringIO[data]]
3

Sau vài phút khi chúng tôi kiểm tra tất cả các chức năng của mình, chúng tôi có thể hiển thị kết quả

df = pd.read_csv[io.StringIO[data]]
4

Mỗi chức năng chạy 7 lần để tiết lộ rằng thao tác regex trên tập dữ liệu lớn thực sự rất chậm

Bài kiểm tra hiệu suất đã xác nhận những gì chúng tôi đã mong đợi. Các phương thức tích hợp đánh bại các thuật toán tùy chỉnh. Mặc dù vì chúng không đạt được những gì chúng ta muốn, chúng ta có thể sử dụng

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ':']
20 để xóa các khoảng trống khỏi khung dữ liệu đã tải. nó xấp xỉ. Chậm hơn 50% so với quy trình không tước, nhưng vẫn nhanh hơn gần 5 lần so với sử dụng biểu thức chính quy

Bạn có thể nhận thấy rằng việc sử dụng

df = pd.read_csv["C:\Users\Rahul\Desktop\Example.csv", sep = ';']
08 có thể giảm tải mà không cần xử lý khoảng trắng, do đó, việc kết hợp tham số này với xử lý hậu kỳ trên khung dữ liệu đã tải có thể mang lại kết quả tốt hơn nữa nếu tốc độ là mối quan tâm của chúng tôi. Bạn có thể chạy thử nghiệm hiệu suất lần thứ hai để xác nhận rằng đây không phải là điều bất thường

Phần kết luận

Việc xử lý khoảng trắng rất quan trọng trong trường hợp tập dữ liệu của chúng ta bị ô nhiễm với các khoảng trống thừa không chỉ để giảm kích thước dữ liệu mà còn chủ yếu để nối dữ liệu với các nguồn khác một cách chính xác và nhận được kết quả dự kiến ​​của việc tổng hợp dữ liệu và NaN

Pandas chứa một số tham số tích hợp giúp xử lý các trường hợp phổ biến nhất. Mọi xử lý tiếp theo phải được thực hiện bởi một chức năng tùy chỉnh làm giảm tốc độ của quy trình. Vì lý do đó, hãy luôn cố gắng thỏa thuận với các nhà cung cấp dữ liệu của bạn để tạo ra. tệp csv lấy tiêu chuẩn

Bạn có thể thực hiện tất cả mã được mô tả trong bài viết này bằng sổ ghi chép Jupyter này trên github. Dữ liệu kiểm tra không được bao gồm, nhưng bạn có thể tạo chúng thông qua sổ ghi chép này

Cách đọc tệp CSV được phân tách bằng dấu phẩy trong pandas?

Đọc tệp CSV bằng Pandas. Để đọc các tệp CSV hoặc dấu phân cách read_csv này, chúng tôi sử dụng một chức năng của thư viện Pandas có tên là read_csv[]. .
Thanh phân cách dọc. Do đó, tệp được phân cách bằng thanh dọc có thể được đọc bởi. df = pd. read_csv["C. \Users\Rahul\Desktop\Ví dụ. csv", tháng chín = '. ']
Máy tách đại tràng. .
Dấu tách tab. .
Phần kết luận

Làm cách nào để đọc tệp csv không có tiêu đề trong gấu trúc?

Để đọc tệp CSV không có tiêu đề sử dụng giá trị Không có cho tham số tiêu đề trong hàm pandas read_csv[] .

Delim_whitespace là gì?

delim_whitespace. Một giá trị boolean để chỉ định xem có nên sử dụng khoảng trắng làm dấu phân tách hay không . Giá trị mặc định là Sai trong trường hợp đó, dấu phân cách read_csv sep được ưu tiên. Nếu được đặt thành True , bất kỳ lượng khoảng trắng nào [dấu cách hoặc tab] sẽ được coi là dấu phân cách mới.

S+ trong gấu trúc là gì?

Tham số sepstr, mặc định 's+' Một chuỗi hoặc dấu phân cách biểu thức chính quy . Mặc định của 's+' biểu thị một hoặc nhiều ký tự khoảng trắng.

Chủ Đề