Làm cách nào để xem tất cả các trang tính trong excel pandas?

Một trong những chức năng gấu trúc được sử dụng phổ biến nhất 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')
5. Bài viết ngắn này cho biết cách bạn có thể đọc tất cả các tab trong sổ làm việc Excel và kết hợp chúng thành một khung dữ liệu pandas duy nhất bằng một lệnh

Đối với những bạn muốn TLDR , đây là lệnh.

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

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

Trang tính Excel

Đối với mục đích của ví dụ này, chúng tôi giả sử rằng sổ làm việc Excel có cấu trúc như thế này

Làm cách nào để xem tất cả các trang tính trong excel pandas?

Quá trình tôi sẽ mô tả hoạt động khi

  • Dữ liệu không bị trùng lặp trên các tab (trang tính 1 là một tháng đầy đủ và các trang tính tiếp theo chỉ chứa dữ liệu của một tháng)
  • Tất cả các cột đều được đặt tên giống nhau
  • Bạn muốn đọc trong tất cả các tab và kết hợp chúng lại

Hiểu về read_excel

Hàm

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 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 ta có thể sử dụng tham số
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 để hợp lý hóa việc đọc tất cả các trang tính trong tệp Excel của mình

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

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 xem kỹ tài liệu, bạn có thể nhận thấy rằng nếu bạn 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')
1 , bạn có thể đọc tất cả các trang tính trong sổ làm việc cùng một lúc. Hãy thử nó

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

Pandas sẽ đọc tất cả các trang tính và trả về 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')
2. Vì mục đích dễ đọc của bài viết này, tôi đang xác định url đầy đủ và chuyển nó tới
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. Trên thực tế, bạn có thể quyết định thực hiện một lệnh này

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')
4

all_dfs.keys()

________số 8

Nếu bạn muốn truy cập một trang tính dưới dạng khung dữ liệu

all_dfs['Sheet1'].head()

số tài khoảntênskusố lượngđơn giágiá ngoàingày0412290Jerde-HilpertS2-778964376. 663296. 382018-03-04 23. 10. 281383080Will LLC S1-936832890. 862544. 082018-03-05 05. 11. 492729833Koepp LtdS1-302481344. 84582. 922018-03-05 17. 33. 523424914Trắng-TrantowS2-824233850. 931935. 342018-03-05 21. 40. 104672390Kuhn-GusikowskiS1-509613448. 201638. 802018-03-06 11. 59. 00

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

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

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')
5 vì các chỉ số được tạo tự động của
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')
6 ,
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')
7 , v.v. không có ý nghĩa

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

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

Tóm lược

Thủ thuật này có thể hữu ích trong những trường hợp phù hợp. Nó cũng minh họa sức mạnh của lệnh pandas mà “chỉ” đọc được trong tệp Excel. Sổ ghi chép đầy đủ có sẵn trên github nếu bạn muốn tự mình dùng thử