Python đọc bảng excel

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python và Pandas để đọc các tệp Excel bằng hàm Pandas read_excel. Các tệp Excel ở khắp mọi nơi – và mặc dù chúng có thể không phải là loại dữ liệu lý tưởng đối với nhiều nhà khoa học dữ liệu, nhưng biết cách làm việc với chúng là một kỹ năng cần thiết

Đến cuối hướng dẫn này, bạn sẽ học được

  • Cách sử dụng hàm Pandas read_excel để đọc tệp Excel
  • Cách đọc chỉ định tên trang tính Excel để đọc vào Pandas
  • Cách đọc nhiều trang tính hoặc tệp Excel
  • Cách sắp xếp các cột nhất định từ tệp Excel trong Pandas
  • Cách bỏ qua hàng khi đọc tệp Excel trong Pandas
  • Và nhiều hơn nữa

Bắt đầu nào

Mục lục

Câu trả lời nhanh. Sử dụng Pandas read_excel để đọc tệp Excel

Để đọc các tệp Excel trong Pandas của Python, hãy sử dụng hàm # Reading an Excel file in Pandas import pandas as pd df = pd.read_excel('//github.com/datagy/mediumdata/raw/master/Sales.xlsx') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 191 # 1 2022-04-02 B 727 # 2 2022-04-03 A 782 # 3 2022-04-04 B 561 # 4 2022-04-05 A 9695. Bạn có thể chỉ định đường dẫn đến tệp và tên trang tính để đọc, như hình bên dưới

# Reading an Excel File in Pandas import pandas as pd df = pd.read_excel('/Users/datagy/Desktop/Sales.xlsx') # With a Sheet Name df = pd.read_excel( io='/Users/datagy/Desktop/Sales.xlsx' sheet_name ='North' )

Trong các phần tiếp theo của hướng dẫn này, bạn sẽ tìm hiểu thêm về hàm Pandas # Reading an Excel file in Pandas import pandas as pd df = pd.read_excel('//github.com/datagy/mediumdata/raw/master/Sales.xlsx') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 191 # 1 2022-04-02 B 727 # 2 2022-04-03 A 782 # 3 2022-04-04 B 561 # 4 2022-04-05 A 9695 để hiểu rõ hơn về cách tùy chỉnh việc đọc tệp Excel

Hiểu chức năng read_excel của Pandas

Hàm Pandas # Reading an Excel file in Pandas import pandas as pd df = pd.read_excel('//github.com/datagy/mediumdata/raw/master/Sales.xlsx') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 191 # 1 2022-04-02 B 727 # 2 2022-04-03 A 782 # 3 2022-04-04 B 561 # 4 2022-04-05 A 9695 có rất nhiều tham số khác nhau. Trong hướng dẫn này, bạn sẽ học cách sử dụng các tham số chính có sẵn để mang lại sự linh hoạt đáng kinh ngạc về cách bạn đọc các tệp Excel trong Pandas

Tham sốMô tảTùy chọn có sẵn_______0_______8Đường dẫn chuỗi đến sổ làm việc. URL tới tệp, đường dẫn tới tệp, v.v. # Reading an Excel file in Pandas import pandas as pd df = pd.read_excel('//github.com/datagy/mediumdata/raw/master/Sales.xlsx') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 191 # 1 2022-04-02 B 727 # 2 2022-04-03 A 782 # 3 2022-04-04 B 561 # 4 2022-04-05 A 9699Tên tờ cần đọc. Sẽ mặc định là trang tính đầu tiên trong sổ làm việc (vị trí 0). Có thể đọc các chuỗi (đối với tên trang tính), số nguyên (đối với vị trí) hoặc danh sách (đối với nhiều trang tính)Sales.xlsx |---East |---West |---North0Các cột cần đọc, nếu không phải tất cả các cột đều được đọcCó thể là các chuỗi cột, cột kiểu Excel (“A. C”), hoặc các số nguyên đại diện cho các vị trí cột_______6_______1Các kiểu dữ liệu sẽ sử dụng cho mỗi cộtTừ điển với các cột là khóa và các loại dữ liệu là giá trịSales.xlsx |---East |---West |---North2Số lượng hàng cần bỏ qua từ trên cùngGiá trị số nguyên đại diện cho số lượng hàng cần bỏ quaSales.xlsx |---East |---West |---North3Số lượng hàng cần phân tích Giá trị nguyên đại diện cho số lượng

Bảng trên nêu bật một số tham số chính có sẵn trong hàm Pandas Sales.xlsx |---East |---West |---North4. Danh sách đầy đủ có thể được tìm thấy trong tài liệu chính thức. Trong các phần sau, bạn sẽ tìm hiểu cách sử dụng các tham số hiển thị ở trên để đọc các tệp Excel theo nhiều cách khác nhau bằng Python và Pandas

Cách đọc tệp Excel trong Pandas read_excel

Như đã trình bày ở trên, cách dễ nhất để đọc tệp Excel bằng Pandas là chỉ cần chuyển đường dẫn tệp tới tệp Excel. Tham số # Reading an Excel file in Pandas import pandas as pd df = pd.read_excel('//github.com/datagy/mediumdata/raw/master/Sales.xlsx') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 191 # 1 2022-04-02 B 727 # 2 2022-04-03 A 782 # 3 2022-04-04 B 561 # 4 2022-04-05 A 9698 là tham số đầu tiên, vì vậy bạn chỉ cần chuyển chuỗi vào tệp

Tham số chấp nhận cả đường dẫn đến tệp, đường dẫn HTTP, đường dẫn FTP hoặc hơn thế nữa. Hãy xem điều gì sẽ xảy ra khi chúng tôi đọc trong tệp Excel được lưu trữ trên trang Github của tôi

# Reading an Excel file in Pandas import pandas as pd df = pd.read_excel('//github.com/datagy/mediumdata/raw/master/Sales.xlsx') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 191 # 1 2022-04-02 B 727 # 2 2022-04-03 A 782 # 3 2022-04-04 B 561 # 4 2022-04-05 A 969

Nếu bạn đã tải xuống tệp và xem qua tệp đó, bạn sẽ nhận thấy rằng tệp có ba trang tính?

Trong phần sau, bạn sẽ tìm hiểu cách chỉ định trang tính nào bạn muốn tải vào DataFrame

Cách chỉ định tên trang tính Excel trong Pandas read_excel

Như đã trình bày trong phần trước, bạn đã biết rằng khi không có trang tính nào được chỉ định, Pandas sẽ tải trang tính đầu tiên trong sổ làm việc Excel. Trong sổ làm việc được cung cấp, có ba trang tính theo cấu trúc sau

Sales.xlsx |---East |---West |---North

Do đó, chúng tôi biết rằng dữ liệu từ trang tính “Đông” đã được tải. Nếu chúng tôi muốn tải dữ liệu từ trang tính “Tây”, chúng tôi có thể sử dụng tham số # Reading an Excel file in Pandas import pandas as pd df = pd.read_excel('//github.com/datagy/mediumdata/raw/master/Sales.xlsx') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 191 # 1 2022-04-02 B 727 # 2 2022-04-03 A 782 # 3 2022-04-04 B 561 # 4 2022-04-05 A 9699 để chỉ định trang tính nào chúng tôi muốn tải

Tham số chấp nhận cả chuỗi cũng như số nguyên. Nếu chúng ta truyền vào một chuỗi, chúng ta có thể chỉ định tên trang tính mà chúng ta muốn tải

Hãy xem cách chúng ta có thể chỉ định tên trang tính cho Sales.xlsx |---East |---West |---North8

# Specifying an Excel Sheet to Load by Name import pandas as pd df = pd.read_excel( io='//github.com/datagy/mediumdata/raw/master/Sales.xlsx', sheet_name='West') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 504 # 1 2022-04-02 B 361 # 2 2022-04-03 A 694 # 3 2022-04-04 B 702 # 4 2022-04-05 A 255

Tương tự, chúng ta có thể tải tên trang tính theo vị trí của nó. Theo mặc định, Pandas sẽ sử dụng vị trí của Sales.xlsx |---East |---West |---North9, sẽ tải trang tính đầu tiên. Giả sử chúng ta muốn lặp lại ví dụ trước đó và tải dữ liệu từ trang tính có tên Sales.xlsx |---East |---West |---North8, chúng ta cần biết vị trí của trang tính

Bởi vì chúng tôi biết trang tính là trang tính thứ hai, chúng tôi có thể chuyển vào chỉ mục thứ nhất

# Specifying an Excel Sheet to Load by Position import pandas as pd df = pd.read_excel( io='//github.com/datagy/mediumdata/raw/master/Sales.xlsx', sheet_name=1) print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 504 # 1 2022-04-02 B 361 # 2 2022-04-03 A 694 # 3 2022-04-04 B 702 # 4 2022-04-05 A 255

Chúng ta có thể thấy rằng cả hai phương thức này đều trả về cùng một dữ liệu của trang tính. Trong phần sau, bạn sẽ tìm hiểu cách chỉ định cột nào sẽ tải khi sử dụng hàm read_excel của Pandas

Cách chỉ định tên cột trong Pandas read_excel

Có thể nhiều khi bạn không muốn tải từng cột trong tệp Excel. Điều này có thể là do tệp có quá nhiều cột hoặc có các cột khác nhau cho các trang tính khác nhau

Để làm điều này, chúng ta có thể sử dụng tham số Sales.xlsx |---East |---West |---North0. Đó là một tham số rất linh hoạt cho phép bạn chỉ định

  • Một danh sách các tên cột,
  • Một chuỗi các phạm vi cột Excel,
  • Một danh sách các số nguyên chỉ định các chỉ số cột để tải

Thông thường nhất, bạn sẽ gặp những người sử dụng danh sách tên cột để đọc. Mỗi cột này là các chuỗi được phân tách bằng dấu phẩy, được chứa trong một danh sách

Hãy tải DataFrame của chúng tôi từ ví dụ trên, chỉ lần này chỉ tải các cột # Specifying an Excel Sheet to Load by Name import pandas as pd df = pd.read_excel( io='//github.com/datagy/mediumdata/raw/master/Sales.xlsx', sheet_name='West') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 504 # 1 2022-04-02 B 361 # 2 2022-04-03 A 694 # 3 2022-04-04 B 702 # 4 2022-04-05 A 2552 và # Specifying an Excel Sheet to Load by Name import pandas as pd df = pd.read_excel( io='//github.com/datagy/mediumdata/raw/master/Sales.xlsx', sheet_name='West') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 504 # 1 2022-04-02 B 361 # 2 2022-04-03 A 694 # 3 2022-04-04 B 702 # 4 2022-04-05 A 2553

# Specifying Columns to Load by Name import pandas as pd df = pd.read_excel( io='//github.com/datagy/mediumdata/raw/master/Sales.xlsx', usecols=['Customer', 'Sales']) print(df.head()) # Returns: # Customer Sales # 0 A 191 # 1 B 727 # 2 A 782 # 3 B 561 # 4 A 969

Chúng ta có thể thấy rằng bằng cách chuyển vào danh sách các chuỗi đại diện cho các cột, chúng ta chỉ có thể phân tích cú pháp các cột đó

Nếu chúng tôi muốn sử dụng các thay đổi của Excel, chúng tôi cũng có thể chỉ định các cột # Specifying an Excel Sheet to Load by Name import pandas as pd df = pd.read_excel( io='//github.com/datagy/mediumdata/raw/master/Sales.xlsx', sheet_name='West') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 504 # 1 2022-04-02 B 361 # 2 2022-04-03 A 694 # 3 2022-04-04 B 702 # 4 2022-04-05 A 2554. Hãy xem nó trông như thế nào dưới đây

# Specifying Columns to Load by Excel Range import pandas as pd df = pd.read_excel( io='//github.com/datagy/mediumdata/raw/master/Sales.xlsx', usecols='B:C') print(df.head()) # Returns: # Customer Sales # 0 A 191 # 1 B 727 # 2 A 782 # 3 B 561 # 4 A 969

Cuối cùng, chúng ta cũng có thể chuyển vào một danh sách các số nguyên đại diện cho vị trí của các cột mà chúng ta muốn tải. Vì các cột là cột thứ hai và thứ ba, chúng tôi sẽ tải danh sách các số nguyên như hình bên dưới

# Specifying Columns to Load by Their Position import pandas as pd df = pd.read_excel( io='//github.com/datagy/mediumdata/raw/master/Sales.xlsx', usecols=[1,2]) print(df.head()) # Returns: # Customer Sales # 0 A 191 # 1 B 727 # 2 A 782 # 3 B 561 # 4 A 969

Trong phần sau, bạn sẽ học cách chỉ định kiểu dữ liệu khi đọc tệp Excel

Cách chỉ định các loại dữ liệu trong Pandas read_excel

Pandas giúp dễ dàng chỉ định kiểu dữ liệu của các cột khác nhau khi đọc tệp Excel. Điều này phục vụ ba mục đích chính

  1. Ngăn chặn dữ liệu bị đọc sai
  2. Tăng tốc hoạt động đọc
  3. Tiết kiệm bộ nhớ

Bạn có thể chuyển vào một từ điển trong đó các khóa là các cột và các giá trị là các kiểu dữ liệu. Điều này đảm bảo rằng dữ liệu đã sẵn sàng một cách chính xác. Hãy xem cách chúng tôi có thể chỉ định các loại dữ liệu cho các cột của mình

# Specifying Data Types for Columns When Reading Excel Files import pandas as pd df = pd.read_excel( io='//github.com/datagy/mediumdata/raw/master/Sales.xlsx', dtype={'date':'datetime64', 'Customer': 'object', 'Sales':'int'}) print(df.head()) # Returns: # Customer Sales # Date Customer Sales # 0 2022-04-01 A 191 # 1 2022-04-02 B 727 # 2 2022-04-03 A 782 # 3 2022-04-04 B 561 # 4 2022-04-05 A 969

Điều quan trọng cần lưu ý là bạn không cần phải chuyển vào tất cả các cột để điều này hoạt động. Trong phần tiếp theo, bạn sẽ tìm hiểu cách bỏ qua các hàng khi đọc tệp Excel

Cách bỏ qua hàng khi đọc tệp Excel trong Pandas

Trong một số trường hợp, bạn sẽ gặp các tệp có các hàng tiêu đề được định dạng trong tệp Excel của mình, như minh họa bên dưới

Một Excel có định dạng bất thường

Nếu chúng ta đọc tờ # Specifying an Excel Sheet to Load by Name import pandas as pd df = pd.read_excel( io='//github.com/datagy/mediumdata/raw/master/Sales.xlsx', sheet_name='West') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 504 # 1 2022-04-02 B 361 # 2 2022-04-03 A 694 # 3 2022-04-04 B 702 # 4 2022-04-05 A 2555, chúng ta sẽ nhận được kết quả như sau

# Reading a poorly formatted Excel file import pandas as pd df = pd.read_excel( io='//github.com/datagy/mediumdata/raw/master/Sales.xlsx', sheet_name='North') print(df.head()) # Returns: # North Sales Unnamed: 1 Unnamed: 2 # 0 Totals Available NaN NaN # 1 Date Customer Sales # 2 2022-04-01 00:00:00 A 164 # 3 2022-04-02 00:00:00 B 612 # 4 2022-04-03 00:00:00 A 260

Pandas giúp dễ dàng bỏ qua một số hàng nhất định khi đọc tệp Excel. Điều này có thể được thực hiện bằng cách sử dụng tham số Sales.xlsx |---East |---West |---North2. Chúng ta có thể thấy rằng chúng ta cần bỏ qua hai hàng, vì vậy chúng ta chỉ cần chuyển vào giá trị 2, như hình bên dưới

# Reading an Excel file in Pandas import pandas as pd df = pd.read_excel('//github.com/datagy/mediumdata/raw/master/Sales.xlsx') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 191 # 1 2022-04-02 B 727 # 2 2022-04-03 A 782 # 3 2022-04-04 B 561 # 4 2022-04-05 A 9690

Điều này đọc các tập tin chính xác hơn nhiều. Nó có thể là cứu cánh khi làm việc với các tệp có định dạng kém. Trong phần tiếp theo, bạn sẽ tìm hiểu cách đọc nhiều trang tính trong một tệp Excel trong Pandas

Cách đọc nhiều trang tính trong một tệp Excel trong Pandas

Pandas giúp bạn dễ dàng đọc nhiều trang cùng một lúc. Điều này có thể được thực hiện bằng cách sử dụng tham số # Reading an Excel file in Pandas import pandas as pd df = pd.read_excel('//github.com/datagy/mediumdata/raw/master/Sales.xlsx') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 191 # 1 2022-04-02 B 727 # 2 2022-04-03 A 782 # 3 2022-04-04 B 561 # 4 2022-04-05 A 9699. Trong các ví dụ trước của chúng tôi, chúng tôi chỉ chuyển vào một chuỗi duy nhất để đọc một trang tính. Tuy nhiên, bạn cũng có thể chuyển vào danh sách các trang tính để đọc nhiều trang tính cùng một lúc

Hãy xem làm thế nào chúng ta có thể đọc hai tờ đầu tiên của chúng tôi

# Reading an Excel file in Pandas import pandas as pd df = pd.read_excel('//github.com/datagy/mediumdata/raw/master/Sales.xlsx') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 191 # 1 2022-04-02 B 727 # 2 2022-04-03 A 782 # 3 2022-04-04 B 561 # 4 2022-04-05 A 9691

Trong ví dụ trên, chúng tôi đã chuyển vào một danh sách các trang tính để đọc. Khi chúng tôi sử dụng hàm # Specifying an Excel Sheet to Load by Name import pandas as pd df = pd.read_excel( io='//github.com/datagy/mediumdata/raw/master/Sales.xlsx', sheet_name='West') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 504 # 1 2022-04-02 B 361 # 2 2022-04-03 A 694 # 3 2022-04-04 B 702 # 4 2022-04-05 A 2558 để kiểm tra loại giá trị được trả về, chúng tôi thấy rằng một từ điển đã được trả về

Mỗi trang tính là một khóa của từ điển với DataFrame là giá trị của khóa tương ứng. Hãy xem cách chúng ta có thể truy cập vào Khung dữ liệu Sales.xlsx |---East |---West |---North8

# Reading an Excel file in Pandas import pandas as pd df = pd.read_excel('//github.com/datagy/mediumdata/raw/master/Sales.xlsx') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 191 # 1 2022-04-02 B 727 # 2 2022-04-03 A 782 # 3 2022-04-04 B 561 # 4 2022-04-05 A 9692

Bạn cũng có thể đọc tất cả các trang tính cùng một lúc bằng cách chỉ định # Specifying an Excel Sheet to Load by Position import pandas as pd df = pd.read_excel( io='//github.com/datagy/mediumdata/raw/master/Sales.xlsx', sheet_name=1) print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 504 # 1 2022-04-02 B 361 # 2 2022-04-03 A 694 # 3 2022-04-04 B 702 # 4 2022-04-05 A 2550 cho giá trị của # Reading an Excel file in Pandas import pandas as pd df = pd.read_excel('//github.com/datagy/mediumdata/raw/master/Sales.xlsx') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 191 # 1 2022-04-02 B 727 # 2 2022-04-03 A 782 # 3 2022-04-04 B 561 # 4 2022-04-05 A 9699. Tương tự, điều này trả về một từ điển của tất cả các trang tính

# Reading an Excel file in Pandas import pandas as pd df = pd.read_excel('//github.com/datagy/mediumdata/raw/master/Sales.xlsx') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 191 # 1 2022-04-02 B 727 # 2 2022-04-03 A 782 # 3 2022-04-04 B 561 # 4 2022-04-05 A 9693

Trong phần tiếp theo, bạn sẽ học cách đọc nhiều tệp Excel trong Pandas

Cách chỉ đọc n dòng khi đọc tệp Excel trong Pandas

Khi làm việc với các tệp Excel rất lớn, trước tiên, có thể hữu ích khi chỉ lấy mẫu một tập hợp con dữ liệu nhỏ. Điều này cho phép bạn nhanh chóng tải tệp để có thể khám phá các cột và loại dữ liệu khác nhau tốt hơn

Điều này có thể được thực hiện bằng cách sử dụng tham số Sales.xlsx |---East |---West |---North3, chấp nhận giá trị số nguyên của số hàng bạn muốn đọc vào Khung dữ liệu của mình. Hãy xem cách chúng ta có thể đọc năm hàng đầu tiên của trang tính Excel

# Reading an Excel file in Pandas import pandas as pd df = pd.read_excel('//github.com/datagy/mediumdata/raw/master/Sales.xlsx') print(df.head()) # Returns: # Date Customer Sales # 0 2022-04-01 A 191 # 1 2022-04-02 B 727 # 2 2022-04-03 A 782 # 3 2022-04-04 B 561 # 4 2022-04-05 A 9694

Phần kết luận

Trong hướng dẫn này, bạn đã học cách sử dụng Python và Pandas để đọc các tệp Excel vào DataFrame bằng cách sử dụng hàm Sales.xlsx |---East |---West |---North4. Bạn đã học cách sử dụng hàm để đọc Excel, chỉ định tên trang tính, chỉ đọc các cột cụ thể và chỉ định loại dữ liệu. Sau đó, bạn đã học cách bỏ qua các hàng, chỉ đọc một số hàng nhất định và đọc nhiều trang tính

Làm cách nào để đọc dữ liệu từ Excel bằng Python?

Đọc tệp Excel . Hàm có thể đọc các tệp từ HĐH bằng cách sử dụng đường dẫn thích hợp tới tệp. Theo mặc định, chức năng sẽ đọc Sheet1. The read_excel function of the pandas library is used read the content of an Excel file into the python environment as a pandas DataFrame. The function can read the files from the OS by using proper path to the file. By default, the function will read Sheet1.

Python có thể đọc một tệp Excel đang mở không?

Có thể đọc các tệp Python trong python bằng cách sử dụng mô-đun xlrd . Các bản ghi được lưu trữ trong tệp excel có thể được đọc và xử lý trong chương trình python bằng mô-đun xlrd.

Gấu trúc có đọc được XLSX không?

Đọc tệp Excel vào DataFrame của gấu trúc. Hỗ trợ các phần mở rộng tệp xls , xlsx , xlsm , xlsb , odf , ods và odt đọc từ hệ thống tệp cục bộ hoặc URL.

Chủ đề