Trong công việc hàng ngày của mình, tôi làm việc với các tệp Excel khá nhiều - lấy các tệp Excel, hầu hết chứa nhiều trang tính và tải chúng vào Python bằng Pandas cho nhiều tác vụ khác nhau. Tôi thấy quy trình này khá rườm rà, cho đến khi một đồng nghiệp [cảm ơn Gab Lin. ] đã dạy tôi một thủ thuật đơn giản mà từ đó cho phép tôi thực hiện nhiệm vụ này một cách trực quan và hiệu quả hơn. Cho phép tôi trả nó về phía trước trong bài viết này. 🙂
Các mã được trình bày trong bài viết này có thể được tìm thấy tại repo GitHub này
Dữ liệuTrước khi đi vào mấu chốt, trước tiên chúng ta hãy xem tệp Excel sau đây mà tôi đã tạo và sẽ sử dụng để minh họa
Nếu chúng tôi đọc tờ
# 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'
]
75, chúng tôi sẽ nhận được kết quả sau# 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
0Pandas 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
|---North
2. 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 969
0Đ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 969
9. 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úcHã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 969
1Trong 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
# 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'
]
78 để 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
|---North
8# 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
2Bạ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
# 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
00 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 969
9. 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 969
3Trong 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
|---North
3, chấp nhận giá trị số nguyên của số hàng bạn muốn đọc vào DataFrame 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 969
4Sự kết luận
Trong hướng dẫn này, bạn đã học cách sử dụng Python và Pandas để đọc tệp Excel vào DataFrame bằng hàm
Sales.xlsx
|---East
|---West
|---North
4. 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