Pandas nhiều trang tính sang Excel
Pandas có một vài hạn chế khi làm việc với nhiều trang tính trong tệp Excel. Tuy nhiên, có một thủ thuật nhỏ có thể giúp chúng tôi khắc phục những hạn chế này và làm việc với nhiều trang tính hiệu quả hơn Show
Một trong những thách thức khi làm việc với nhiều trang tính trong Pandas là theo dõi xem dữ liệu đến từ trang tính nào. Chúng tôi có thể giảm bớt vấn đề này bằng cách tạo một từ điển tên trang tính và DataFrames. Chúng ta có thể tham chiếu các trang tính theo tên thay vì nhớ số trang tính nào tương ứng với Khung dữ liệu nào Có liên quan. Một cách tốt hơn để tóm tắt Pandas Dataframes Một hạn chế khác khi làm việc với nhiều trang tính trong Pandas là hàm read_excel() chỉ có thể đọc một trang tính tại một thời điểm. Nếu muốn đọc dữ liệu từ nhiều sheet khác nhau thì phải sử dụng hàm read_excel() nhiều lần Liên kết được Tài trợThủ thuật đọc file Excel nhiều sheet hiệu quả trong PandasChúng ta có thể khắc phục hạn chế này bằng cách đặt đối số tên trang tính thành Không có trong hàm read_excel
Hàm trên tạo một từ điển có tên trang tính trong tệp Excel dưới dạng khóa và khung dữ liệu dưới dạng giá trị. Bây giờ bạn có thể truy cập vào khung dữ liệu với tên trang tính của nó
Kết hợp nhiều trang tính trong một tệp Excel bằng PandasThông thường, các nhà khoa học và nhà phân tích dữ liệu nhận được các tệp excel có nhiều trang tính. Tuy nhiên, chúng chỉ là một phân vùng hợp lý của một tập dữ liệu lớn hơn trong hầu hết các trường hợp Liên kết được Tài trợChẳng hạn, một tập dữ liệu được phân vùng theo tháng và được lưu trữ trong các trang riêng lẻ thay vì một tệp lớn Cũng có thể kết hợp các trang tính trong tệp excel một cách thuận tiện bằng cách sử dụng phương thức giá trị của df_dict
Vui lòng không lặp lại tên trang tính để đọc chúngTrước khi tôi học được thủ thuật này, trên thực tế, tôi đã xem qua các tên trang tính và đọc từng trang một. Đoạn mã để làm điều này sẽ giống như dưới đây
Mã này thực hiện công việc không gặp nhiều khó khăn. Tuy nhiên, chúng ta có thể loại bỏ các dòng mã bổ sung này bằng cách đặt sheetname=None khi đọc tệp 0 thông số về gấu trúc. read_excel() dùng để đọc nhiều sheet từ excel. Điều này hỗ trợ đọc bảng excel theo tên hoặc vị trí. Khi bạn đọc nhiều trang tính, nó sẽ tạo ra một Dict của DataFrame, mỗi khóa trong Từ điển được biểu thị dưới dạng tên Trang tính và giá trị DF cho Dictgấu trúc Đọc nhiều trang tính trong ExcelThông số 0 cũng lấy danh sách tên trang tính làm giá trị có thể được sử dụng để đọc nhiều trang tính vào DataFrame của gấu trúc. Không phải trong khi đọc nhiều trang tính, nó sẽ trả về Dict of DataFrame. Khóa trong Dict là tên trang tính và giá trị sẽ là DataFrameTham số này nhận các giá trị str, int, list hoặc None, mặc định 0. Khi sử dụng 2, nó sẽ đọc tất cả các trang từ excel. Theo mặc định, nó được đặt thành 0 có nghĩa là tờ đầu tiênCùng xem ví dụ nhé, mình có 1 file excel gồm 2 sheet tên là 3 và 4
Vì chúng tôi đang đọc hai trang tính từ excel, hàm này trả về Dict của DataFrame. Bạn có thể lấy DataFrames từ Dict như sau
Trang tính 3 được chuyển đổi thành DataFrame như sau. Lưu ý rằng các giá trị trống được chuyển đổi thành 0 trên DataFrame________số 8Và sheet 4 được convert thành DataFrame như sau
Sự kết luậnTrong bài viết này, bạn đã học cách đọc một excel có nhiều trang tính và chuyển đổi nó thành DataFrame của gấu trúc. Vì nó trả về một Dict của DataFrame, nên bạn cũng đã học cách lấy từng DF từ dict pandas có đọc được file excel nhiều sheet không?tham số sheet_name trên pandas. read_excel() dùng để đọc nhiều sheet từ excel . Điều này hỗ trợ đọc bảng excel theo tên hoặc vị trí. Khi bạn đọc nhiều trang tính, nó sẽ tạo ra một Dict của DataFrame, mỗi khóa trong Từ điển được biểu thị dưới dạng tên Trang tính và giá trị DF cho Dict.
Bạn sẽ nhập nhiều trang excel vào một khung dữ liệu như thế nào?Nhận danh sách tên của tất cả các trang tính, sử dụng openpyxl hoặc pandas. Lặp lại qua từng trang tính, phân tích cú pháp từng trang dưới dạng Khung dữ liệu Pandas và nối từng Khung dữ liệu vào danh sách khác. Hợp nhất tất cả vào một DataFrame duy nhất bằng cách sử dụng pd. concat |