Hướng dẫn how read multiple excel files in pandas? - làm thế nào để đọc nhiều tệp excel trong gấu trúc?

Như đã đề cập trong các bình luận, một lỗi bạn đang mắc phải là bạn đang lặp qua một danh sách trống.

Đây là cách tôi sẽ làm điều đó, sử dụng một ví dụ về có 5 tệp Excel giống hệt nhau được thêm vào từng tệp khác.

[1] Nhập khẩu:

import os
import pandas as pd

[2] Tệp danh sách:

path = os.getcwd[]
files = os.listdir[path]
files

Output:

['.DS_Store',
 '.ipynb_checkpoints',
 '.localized',
 'Screen Shot 2013-12-28 at 7.15.45 PM.png',
 'test1 2.xls',
 'test1 3.xls',
 'test1 4.xls',
 'test1 5.xls',
 'test1.xls',
 'Untitled0.ipynb',
 'Werewolf Modelling',
 '~$Random Numbers.xlsx']

[3] Chọn các tệp 'XLS':

files_xls = [f for f in files if f[-3:] == 'xls']
files_xls

Output:

['test1 2.xls', 'test1 3.xls', 'test1 4.xls', 'test1 5.xls', 'test1.xls']

[4] Khởi tạo DataFrame trống:

df = pd.DataFrame[]

[5] Vòng lặp qua danh sách các tệp để nối với DataFrame trống:

for f in files_xls:
    data = pd.read_excel[f, 'Sheet1']
    df = df.append[data]

[6] Tận hưởng DataFrame mới của bạn. :-]

df

Output:

  Result  Sample
0      a       1
1      b       2
2      c       3
3      d       4
4      e       5
5      f       6
6      g       7
7      h       8
8      i       9
9      j      10
0      a       1
1      b       2
2      c       3
3      d       4
4      e       5
5      f       6
6      g       7
7      h       8
8      i       9
9      j      10
0      a       1
1      b       2
2      c       3
3      d       4
4      e       5
5      f       6
6      g       7
7      h       8
8      i       9
9      j      10
0      a       1
1      b       2
2      c       3
3      d       4
4      e       5
5      f       6
6      g       7
7      h       8
8      i       9
9      j      10
0      a       1
1      b       2
2      c       3
3      d       4
4      e       5
5      f       6
6      g       7
7      h       8
8      i       9
9      j      10

Pandas có một vài hạn chế khi làm việc với nhiều tờ trong một tập tin Excel. Tuy nhiên, có một vụ hack nhỏ có thể giúp chúng tôi làm việc xung quanh những hạn chế này và làm cho việc làm việc với nhiều tờ hiệu quả hơn.

Một trong những thách thức khi làm việc với nhiều tờ trong gấu trúc là theo dõi dữ liệu trang tính đến từ đó. Chúng ta có thể giảm bớt vấn đề này bằng cách tạo một từ điển tên trang và khung dữ liệu. Chúng ta có thể tham khảo các tờ theo tên thay vì ghi nhớ số trang nào tương ứng với DataFrame.

Liên quan: Một cách tốt hơn để tóm tắt các khung dữ liệu gấu trúc. A Better Way to Summarize Pandas Dataframes.

Một giới hạn khác khi làm việc với nhiều tờ trong gấu trúc là hàm read_excel [] chỉ có thể đọc một tờ cùng một lúc. Nếu chúng ta muốn đọc dữ liệu từ các trang khác nhau, chúng ta phải sử dụng hàm read_excel [] nhiều lần.

Bí quyết để đọc hiệu quả các tệp Excel với nhiều tờ trong gấu trúc

Chúng ta có thể làm việc xung quanh giới hạn này bằng cách đặt đối số tên trang tính không trong hàm read_excel.

df_dict = pd.read_excel['/path/to/exel.xlsx', sheet_name=None]

Hàm trên tạo ra một từ điển với tên trang tính trong các tệp Excel dưới dạng các khóa và dataFrame dưới dạng giá trị. Bây giờ bạn có thể truy cập vào DataFrame với tên trang của nó.

path = os.getcwd[]
files = os.listdir[path]
files
0
path = os.getcwd[]
files = os.listdir[path]
files
1

Kết hợp nhiều tờ trong tệp Excel bằng cách sử dụng gấu trúc

Thường thì các nhà khoa học và nhà phân tích dữ liệu nhận được các tệp Excel với nhiều tờ. Tuy nhiên, chúng chỉ là một phân vùng hợp lý của một bộ dữ liệu lớn hơn trong hầu hết các trường hợp.

Chẳng hạn, một bộ dữ liệu được phân vùng theo tháng và được lưu trữ trong các bảng riêng lẻ chứ không phải là một tệp lớn.

Cũng có thể kết hợp các bảng kết hợp thuận tiện trong một tệp Excel bằng phương thức giá trị của DF_DICT.

path = os.getcwd[]
files = os.listdir[path]
files
2

Xin đừng lặp qua tên trang tính để đọc chúng

Trước khi tôi học được mánh khóe này, thực tế tôi đã lặp lại các tên trang tính và đọc chúng riêng lẻ. Đoạn mã để làm điều này sẽ trông giống như bên dưới.

path = os.getcwd[]
files = os.listdir[path]
files
3

Mã này thực hiện công việc không có nhiều khó khăn. Tuy nhiên, chúng tôi có thể loại bỏ các dòng mã bổ sung này bằng cách đặt đơn giản là đặt feetName = không có khi đọc tệp.

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 ô ..

Làm thế nào để bạn đọc tất cả các tệp Excel trong một thư mục trong Python Pandas?

Để đọc tất cả các tệp Excel trong một thư mục, hãy sử dụng mô -đun GLOB và phương thức read_excel [].use the Glob module and the read_excel[] method.

Làm cách nào để lấy dữ liệu từ nhiều sổ làm việc excel?

Nhập từ Excel hoặc Access..
Chọn Dữ liệu> Nhận dữ liệu> Từ Tệp> Từ thư mục.....
Xác định vị trí thư mục chứa các tệp bạn muốn kết hợp ..
Một danh sách các tệp trong thư mục xuất hiện trong hộp thoại.....
Chọn một trong các lệnh ở dưới cùng của hộp thoại, ví dụ như kết hợp> Kết hợp & tải ..

Làm cách nào để thêm nhiều tờ trong excel vào gấu trúc?

Để ghi vào nhiều tờ, cần phải tạo một đối tượng Excelwriter với tên tệp đích và chỉ định một tờ trong tệp để ghi vào.Nhiều tờ có thể được viết bằng cách chỉ định bảng độc đáo.Với tất cả dữ liệu được ghi vào tệp, cần phải lưu các thay đổi.create an ExcelWriter object with a target file name, and specify a sheet in the file to write to. Multiple sheets may be written to by specifying unique sheet_name . With all data written to the file it is necessary to save the changes.

Bài Viết Liên Quan

Chủ Đề