Hướng dẫn python read multiple excel sheets into one dataframe - python đọc nhiều bảng excel vào một khung dữ liệu

Hướng dẫn python read multiple excel sheets into one dataframe - python đọc nhiều bảng excel vào một khung dữ liệu

Giới thiệu

Một trong những hàm gấu trúc được sử dụng phổ biến nhất là read_excel. Bài viết ngắn này cho thấy cách bạn có thể đọc trong tất cả các tab trong sổ làm việc Excel và kết hợp chúng thành một DataFrame của Pandas bằng lệnh One & NBSP;

Đối với những người muốn TLDR, đây là lệnh & nbsp;TLDR, here is the command:

df = pd.concat(pd.read_excel('2018_Sales_Total.xlsx', sheet_name=None), ignore_index=True)

Đọc để giải thích về thời điểm sử dụng này và cách thức hoạt động của nó.

Excel Worksheets

Đối với các mục đích của ví dụ này, chúng tôi giả định rằng sổ làm việc Excel được cấu trúc như & nbsp; điều này:

Hướng dẫn python read multiple excel sheets into one dataframe - python đọc nhiều bảng excel vào một khung dữ liệu

Quá trình tôi sẽ mô tả các công trình & nbsp; khi:

  • Dữ liệu không được sao chép trên các tab (Sheet1 là một tháng và các tờ tiếp theo chỉ có một tháng có giá trị & NBSP; dữ liệu)
  • Các cột đều được đặt tên là & nbsp; giống nhau
  • Bạn muốn đọc trong tất cả các tab và kết hợp & nbsp; chúng

Understanding read_excel

Hàm read_excel là một hàm gấu trúc được đóng gói tính năng. Đối với trường hợp cụ thể này, chúng tôi có thể sử dụng tham số sheet_name để hợp lý hóa việc đọc trong tất cả các bảng trong tệp Excel & NBSP của chúng tôi.all the sheets in our Excel file.

Hầu hết thời gian, bạn sẽ đọc trong một tờ cụ thể từ tệp Excel & NBSP;

import pandas as pd

workbook_url = 'https://github.com/chris1610/pbpython/raw/master/data/2018_Sales_Total_Tabs.xlsx'
single_df = pd.read_excel(workbook_url, sheet_name='Sheet1')

Nếu bạn cẩn thận nhìn vào tài liệu, bạn có thể nhận thấy rằng nếu bạn sử dụng sheet_name=None, bạn có thể đọc trong tất cả các tờ trong sổ làm việc cùng một lúc. Hãy thử và NBSP; nó:

all_dfs = pd.read_excel(workbook_url, sheet_name=None)

Pandas sẽ đọc trong tất cả các tờ và trả lại một đối tượng

import pandas as pd

workbook_url = 'https://github.com/chris1610/pbpython/raw/master/data/2018_Sales_Total_Tabs.xlsx'
single_df = pd.read_excel(workbook_url, sheet_name='Sheet1')
0. Đối với các mục đích của khả năng đọc của bài viết này, tôi đã xác định URL đầy đủ và chuyển nó sang read_excel. Trong thực tế, bạn có thể quyết định thực hiện lệnh này & nbsp;

Hãy để kiểm tra kết quả

import pandas as pd

workbook_url = 'https://github.com/chris1610/pbpython/raw/master/data/2018_Sales_Total_Tabs.xlsx'
single_df = pd.read_excel(workbook_url, sheet_name='Sheet1')
2:

odict_keys(['Sheet1', 'Sheet2', 'Sheet3', 'Sheet4', 'Sheet5', 'Sheet6'])

Nếu bạn muốn truy cập một tờ duy nhất dưới dạng A & NBSP; DataFrame:

số tài khoảnTênSKUsố lượngĐơn giáGiá EXTngày
0412290 Jerde-HilpertS2-7789643 76.66 3296.38 2018-03-04 23:10:28
1383080 Will LLCLLC S1-9368328 90.86 2544.08 2018-03-05 05:11:49
2729833 Koepp LtdS1-3024813 44.84 582.92 2018-03-05 17:33:52
3424914 Trắng-TrantowS2-8242338 50.93 1935.34 2018-03-05 21:40:10
4672390 Kuhn-GusikowskiS1-5096134 48.20 1638.80 2018-03-06 11:59:00

Nếu chúng ta muốn tham gia tất cả các khung dữ liệu riêng lẻ vào một DataFrame, hãy sử dụng pd.concat:

df = pd.concat(all_dfs, ignore_index=True)

Trong trường hợp này, chúng tôi sử dụng

import pandas as pd

workbook_url = 'https://github.com/chris1610/pbpython/raw/master/data/2018_Sales_Total_Tabs.xlsx'
single_df = pd.read_excel(workbook_url, sheet_name='Sheet1')
3 vì các chỉ số được tạo tự động là
import pandas as pd

workbook_url = 'https://github.com/chris1610/pbpython/raw/master/data/2018_Sales_Total_Tabs.xlsx'
single_df = pd.read_excel(workbook_url, sheet_name='Sheet1')
4,
import pandas as pd

workbook_url = 'https://github.com/chris1610/pbpython/raw/master/data/2018_Sales_Total_Tabs.xlsx'
single_df = pd.read_excel(workbook_url, sheet_name='Sheet1')
5, v.v. không & nbsp; có ý nghĩa.

Nếu dữ liệu của bạn đáp ứng cấu trúc được nêu ở trên, một lớp lót này sẽ trả về một khung dữ liệu gấu trúc duy nhất kết hợp dữ liệu trong mỗi excel & nbsp; bảng tính: bảng tính:

df = pd.concat(pd.read_excel(workbook_url, sheet_name=None), ignore_index=True)

Bản tóm tắt

Thủ thuật này có thể hữu ích trong các trường hợp phù hợp. Nó cũng minh họa số lượng năng lượng có trong một lệnh gấu trúc mà chỉ cần đọc trong một tệp excel. Notebook đầy đủ có sẵn trên GitHub nếu bạn muốn dùng thử & nbsp;

Làm cách nào để đọc nhiều tờ trong Excel trong Python?

Để đạt được nhiệm vụ này, tôi đã sử dụng như sau: Nhận danh sách tên của tất cả các bảng tính, bằng cách sử dụng OpenPyXL hoặc Pandas. Lặp lại thông qua mỗi bảng tính, phân tích từng tờ dưới dạng DataFrame của gấu trúc và nối mỗi khung dữ liệu vào danh sách khác. Hợp nhất tất cả thành một DataFrame bằng PD.

Pandas có thể đọc tệp excel với nhiều tờ không?

Sheet_name param trên pandas.read_excel () được sử dụng để đọc nhiều tờ từ Excel.Điều này hỗ trợ đọc các tờ Excel theo tên hoặc vị trí.Khi bạn đọc nhiều tờ, nó tạo ra một bản di động của DataFrame, mỗi khóa trong từ điển được biểu diễn dưới dạng tên trang và DF cho giá trị dict. read_excel() is used to read multiple sheets from excel. This supports reading excel sheets by name or position. When you read multiple sheets, it creates a Dict of DataFrame, each key in Dictionary is represented as Sheet name and DF for Dict value.

Làm cách nào để lấy dữ liệu từ nhiều bảng tính excel thành một?

Trên tab Dữ liệu, trong các công cụ, nhấp vào Hợp nhất.Trong hộp chức năng, nhấp vào chức năng mà bạn muốn Excel sử dụng để hợp nhất dữ liệu.Trong mỗi trang nguồn, chọn dữ liệu của bạn, sau đó nhấp vào Thêm.

Làm cách nào để đọc nhiều tệp XLSX trong Python?

5 Làm cách nào để đọc tệp XLSX trong Python ?..
Nhấp vào ô nơi bạn muốn dữ liệu kéo xuất hiện ..
Loại = (bằng dấu) theo sau là tên của trang tính bạn muốn lấy dữ liệu từ ..
Loại hình !.
Nhấn Enter..
Giá trị từ tờ khác của bạn bây giờ sẽ xuất hiện trong ô ..