Read_csv trong Python là gì?
Tệp CSV (giá trị được phân tách bằng dấu phẩy) là định dạng tệp phổ biến để truyền và lưu trữ dữ liệu. Khả năng đọc, thao tác và ghi dữ liệu vào và từ các tệp CSV bằng Python là kỹ năng quan trọng cần thành thạo đối với bất kỳ nhà khoa học dữ liệu hoặc phân tích kinh doanh nào. Trong bài đăng này, chúng ta sẽ xem xét tệp CSV là gì, cách đọc tệp CSV vào Pandas DataFrames và cách ghi DataFrames trở lại tệp CSV phân tích bài đăng Show
Pandas là gói thao tác dữ liệu phổ biến nhất trong Python và DataFrames là kiểu dữ liệu Pandas để lưu trữ dữ liệu 2D dạng bảng Mục lục Tải tệp CSV lên Python PandasQuy trình cơ bản để tải dữ liệu từ tệp CSV vào Khung dữ liệu Pandas (tất cả đều ổn) đạt được bằng cách sử dụng chức năng “read_csv” trong Pandas # Load the Pandas libraries with alias 'pd' import pandas as pd # Read data from file 'filename.csv' # (in the same directory that your python process is based) # Control delimiters, rows, column names with read_csv (see later) data = pd.read_csv("filename.csv") # Preview the first 5 lines of the loaded data data.head() Mặc dù mã này có vẻ đơn giản nhưng cần phải hiểu ba khái niệm cơ bản để nắm bắt đầy đủ và gỡ lỗi hoạt động của quy trình tải dữ liệu nếu bạn gặp sự cố
Mỗi chủ đề này được thảo luận bên dưới và chúng tôi kết thúc hướng dẫn này bằng cách xem xét một số cơ chế tải CSV nâng cao hơn và đưa ra một số ưu điểm và nhược điểm chung của định dạng CSV 1. Phần mở rộng tệp và loại tệpBước đầu tiên để làm việc với các tệp có giá trị được phân tách bằng dấu phẩy (CSV) là hiểu khái niệm về loại tệp và phần mở rộng tệp
Phần mở rộng tệp được ẩn theo mặc định trên nhiều hệ điều hành. Bước đầu tiên mà bất kỳ kỹ sư, kỹ sư phần mềm hoặc nhà khoa học dữ liệu có lòng tự trọng nào cũng sẽ thực hiện trên máy tính mới là đảm bảo rằng phần mở rộng tệp được hiển thị trong cửa sổ Explorer (Windows) hoặc Finder (Mac) của họ Để kiểm tra xem các phần mở rộng tệp có hiển thị trong hệ thống của bạn hay không, hãy tạo một tài liệu văn bản mới bằng Notepad (Windows) hoặc TextEdit (Mac) và lưu nó vào thư mục bạn chọn. Nếu bạn không thể nhìn thấy “. txt” trong thư mục của bạn khi bạn xem nó, bạn sẽ phải thay đổi cài đặt của mình
2. Biểu diễn dữ liệu trong tệp CSVTệp “CSV”, tức là tệp có kiểu tệp “csv”, là tệp văn bản cơ bản. Bất kỳ trình soạn thảo văn bản nào, chẳng hạn như NotePad trên windows hoặc TextEdit trên Mac, đều có thể mở tệp CSV và hiển thị nội dung. Sublime Text là một tùy chọn soạn thảo văn bản tuyệt vời và đa chức năng cho mọi nền tảng CSV là tiêu chuẩn để lưu trữ dữ liệu dạng bảng ở định dạng văn bản, trong đó dấu phẩy được sử dụng để phân tách các cột khác nhau và dòng mới (dấu xuống dòng/nhấn enter) được sử dụng để phân tách các hàng. Thông thường, hàng đầu tiên trong tệp CSV chứa tên của các cột chứa dữ liệu Và tập dữ liệu bảng ví dụ và dữ liệu định dạng CSV tương ứng được hiển thị trong sơ đồ bên dưới Lưu ý rằng hầu hết mọi dữ liệu dạng bảng đều có thể được lưu trữ ở định dạng CSV – định dạng phổ biến vì tính đơn giản và linh hoạt của nó. Bạn có thể tạo một tệp văn bản trong trình soạn thảo văn bản, lưu nó với một. csv và mở tệp đó trong Excel hoặc Google Trang tính để xem biểu mẫu bảng Dấu phân cách / Dấu phân cách khác – tệp TSVSơ đồ phân tách bằng dấu phẩy cho đến nay là phương pháp phổ biến nhất để lưu trữ dữ liệu dạng bảng trong tệp văn bản Tuy nhiên, việc lựa chọn ký tự dấu phẩy ',' cho các cột phân cách là tùy ý và có thể được thay thế khi cần thiết. Các lựa chọn thay thế phổ biến bao gồm tab (“\t”) và dấu chấm phẩy (“;”). Các tệp được phân tách bằng tab được gọi là tệp TSV (Giá trị được phân tách bằng tab) Khi tải dữ liệu bằng Pandas, hàm read_csv được sử dụng để đọc mọi tệp văn bản được phân tách và bằng cách thay đổi dấu phân cách bằng tham số Dấu phân cách trong trường văn bản – QuotecharMột điều phức tạp khi tạo tệp CSV là nếu bạn thực sự có dấu phẩy, dấu chấm phẩy hoặc tab ở một trong các trường văn bản mà bạn muốn lưu trữ. Trong trường hợp này, điều quan trọng là sử dụng "ký tự trích dẫn" trong tệp CSV để tạo các trường này Ký tự trích dẫn có thể được chỉ định trong Pandas. read_csv sử dụng đối số Trong ví dụ hiển thị, tệp được phân cách bằng dấu chấm phẩy, có dấu ngoặc kép dưới dạng ký tự trích dẫn được tải vào Pandas và được hiển thị trong Excel. Việc sử dụng ký tự trích dẫn cho phép cột “NickName” chứa dấu chấm phẩy mà không bị chia thành nhiều cột hơn 3. Python - Đường dẫn, Thư mục, TệpKhi bạn chỉ định tên tệp cho Pandas. read_csv, Python sẽ tìm trong “thư mục làm việc hiện tại” của bạn. Thư mục làm việc của bạn thường là thư mục mà bạn đã bắt đầu quy trình Python hoặc sổ ghi chép Jupyter của mình từ đó Tìm đường dẫn Python của bạnĐường dẫn Python của bạn có thể được hiển thị bằng cách sử dụng mô-đun Để tìm thư mục làm việc hiện tại của bạn, chức năng cần thiết là # Find out your current working directory import os print(os.getcwd()) # Out: /Users/shane/Documents/blog # Display all of the files found in your current working directory print(os.listdir(os.getcwd()) # Out: ['test_delimted.ssv', 'CSV Blog.ipynb', 'test_data.csv'] Trong ví dụ trên, thư mục làm việc hiện tại của tôi nằm trong thư mục ‘/Users/Shane/Document/blog’. Bất kỳ tệp nào nằm trong thư mục này sẽ có sẵn ngay lập tức cho chức năng hoặc chức năng đọc csv của Pandas Thay vì di chuyển các tệp dữ liệu cần thiết vào thư mục làm việc của bạn, bạn cũng có thể thay đổi thư mục làm việc hiện tại của mình thành thư mục chứa các tệp bằng cách sử dụng Đang tải tệp. Đường dẫn tuyệt đối và tương đốiKhi chỉ định tên tệp cho hàm read_csv, bạn có thể cung cấp cả đường dẫn tệp tuyệt đối hoặc tương đối
Bạn nên sử dụng các đường dẫn tương đối nếu có thể trong các ứng dụng, vì các đường dẫn tuyệt đối không có khả năng hoạt động trên các máy tính khác nhau do cấu trúc thư mục khác nhau 4. Lỗi tải tệp CSV của gấu trúcLỗi phổ biến nhất mà bạn gặp phải khi tải dữ liệu từ tệp CSV vào Pandas sẽ là
Đọc tệp CSV nâng caoCó một số tham số linh hoạt bổ sung trong hàm Pandas read_csv() hữu ích khi có trong kho kỹ thuật khoa học dữ liệu của bạn Chỉ định kiểu dữ liệuNhư đã đề cập trước đây, tệp CSV không chứa bất kỳ thông tin loại dữ liệu nào. Các loại dữ liệu được suy ra thông qua việc kiểm tra các hàng trên cùng của tệp, điều này có thể dẫn đến lỗi. Ví dụ, để chỉ định loại dữ liệu cho các cột khác nhau theo cách thủ công, thông số dtype có thể được sử dụng với một từ điển tên cột và loại dữ liệu sẽ được áp dụng, chẳng hạn. # Find out your current working directory import os print(os.getcwd()) # Out: /Users/shane/Documents/blog # Display all of the files found in your current working directory print(os.listdir(os.getcwd()) # Out: ['test_delimted.ssv', 'CSV Blog.ipynb', 'test_data.csv']2 Lưu ý rằng đối với ngày và giờ, định dạng, cột và hành vi khác có thể được điều chỉnh bằng cách sử dụng các tham số parse_dates, date_parser, dayfirst, keep_date Bỏ qua và chọn hàng và cột từ tệpTham số nrows chỉ định số lượng hàng từ đầu tệp CSV cần đọc, điều này rất hữu ích khi lấy mẫu của một tệp lớn mà không cần tải hoàn toàn. Tương tự, tham số skiprows cho phép bạn chỉ định các hàng cần loại bỏ, ở đầu tệp (cung cấp một số nguyên) hoặc trong toàn bộ tệp (cung cấp danh sách các chỉ số hàng). Tương tự, tham số usecols có thể được sử dụng để chỉ định cột nào trong dữ liệu sẽ tải Biểu tượng giá trị bị thiếu tùy chỉnhKhi dữ liệu được xuất sang CSV từ các hệ thống khác nhau, các giá trị bị thiếu có thể được chỉ định bằng các mã thông báo khác nhau. Thông số na_values cho phép bạn tùy chỉnh các ký tự được nhận dạng là giá trị bị thiếu. Các giá trị mặc định được hiểu là NA/NaN là. ‘’, ‘#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’ # Advanced CSV loading example data = pd.read_csv( "data/files/complex_data_example.tsv", # relative python path to subdirectory sep='\t' # Tab-separated value file. quotechar="'", # single quote allowed as quote character dtype={"salary": int}, # Parse the salary column as an integer usecols=['name', 'birth_date', 'salary']. # Only load the three columns specified. parse_dates=['birth_date'], # Intepret the birth_date column as a date skiprows=10, # Skip the first 10 rows of the file na_values=['.', '??'] # Take any '.' or '??' values as NA ) Ưu điểm và nhược điểm của định dạng CSVNhư với tất cả các quyết định kỹ thuật, việc lưu trữ dữ liệu của bạn ở định dạng CSV có cả ưu điểm và nhược điểm. Hãy nhận biết những cạm bẫy và sự cố tiềm ẩn mà bạn sẽ gặp phải khi tải, lưu trữ và trao đổi dữ liệu ở định dạng CSV Về mặt tích cực
Tuy nhiên, định dạng CSV có một số mặt tiêu cực
Bên cạnh đó, trong nỗ lực khắc phục một số nhược điểm này, hai nhà phát triển khoa học dữ liệu nổi tiếng trong cả hệ sinh thái R và Python, Wes McKinney và Hadley Wickham, gần đây đã giới thiệu Định dạng Feather, nhằm mục đích trở thành một định dạng nhanh, đơn giản, mở, CSV trong read_csv() viết tắt của từ gì?A các giá trị được phân tách bằng dấu phẩy (csv) được trả về dưới dạng cấu trúc dữ liệu hai chiều với các trục được gắn nhãn. Xem thêm Khung dữ liệu. to_csv. Ghi DataFrame vào tệp giá trị được phân tách bằng dấu phẩy (csv). read_csv. Đọc tệp giá trị được phân tách bằng dấu phẩy (csv) vào DataFrame.
Việc sử dụng tệp CSV trong Python là gì?Mô-đun csv triển khai các lớp để đọc và ghi dữ liệu dạng bảng ở định dạng CSV . Nó cho phép các lập trình viên nói, "ghi dữ liệu này ở định dạng ưa thích của Excel" hoặc "đọc dữ liệu từ tệp này được tạo bởi Excel" mà không cần biết chi tiết chính xác về định dạng CSV được sử dụng bởi Excel.
Read_csv có phải là DataFrame không?Hàm pandas read_csv() nhập tệp CSV sang định dạng DataFrame . tiêu đề. điều này cho phép bạn chỉ định hàng nào sẽ được sử dụng làm tên cột cho khung dữ liệu của bạn. Dự kiến một giá trị int hoặc danh sách các giá trị int. Giá trị mặc định là header=0 , có nghĩa là hàng đầu tiên của tệp CSV sẽ được coi là tên cột.
read_csv trả về cái gì?Trong trường hợp này, hàm read_csv() của Pandas trả về một DataFrame mới có dữ liệu và nhãn từ tệp dữ liệu. csv mà bạn đã chỉ định với đối số đầu tiên. Chuỗi này có thể là bất kỳ đường dẫn hợp lệ nào, kể cả URL. Tham số index_col chỉ định cột từ tệp CSV chứa nhãn hàng. |