350
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi có một tệp bảng tính lớn [.xlsx] mà tôi đang xử lý bằng cách sử dụng python gấu trúc. Nó xảy ra rằng tôi cần dữ liệu từ hai tab [bảng] trong tệp lớn đó. Một trong những tab có rất nhiều dữ liệu và cái còn lại chỉ là một vài ô vuông.
Khi tôi sử dụng
df = pd.read_excel['excel_file_path.xls']
# this will read the first sheet into df
2 trên bất kỳ bảng tính nào, nó trông giống như toàn bộ tệp được tải [không chỉ là bảng tính mà tôi quan tâm]. Vì vậy, khi tôi sử dụng phương pháp hai lần [một lần cho mỗi tờ], tôi thực sự phải chịu toàn bộ sổ làm việc được đọc hai lần [mặc dù chúng tôi chỉ sử dụng bảng được chỉ định].Làm cách nào để tải [các] trang tính cụ thể với
df = pd.read_excel['excel_file_path.xls']
# this will read the first sheet into df
2?
SMCI
30.7K18 Huy hiệu vàng110 Huy hiệu bạc145 Huy hiệu đồng18 gold badges110 silver badges145 bronze badges
Đã hỏi ngày 23 tháng 10 năm 2014 lúc 4:21Oct 23, 2014 at 4:21
1
Thử
df = pd.read_excel['excel_file_path.xls']
# this will read the first sheet into df
4:xls = pd.ExcelFile['path_to_file.xls']
df1 = pd.read_excel[xls, 'Sheet1']
df2 = pd.read_excel[xls, 'Sheet2']
Theo ghi nhận của @OningAntran, toàn bộ tệp excel được đọc trong cuộc gọi
df = pd.read_excel['excel_file_path.xls']
# this will read the first sheet into df
5 [dường như không có cách nào xung quanh điều này]. Điều này chỉ đơn thuần là cứu bạn khỏi phải đọc cùng một tệp trong mỗi lần bạn muốn truy cập một tờ mới.Lưu ý rằng đối số
df = pd.read_excel['excel_file_path.xls']
# this will read the first sheet into df
6 thành df = pd.read_excel['excel_file_path.xls']
# this will read the first sheet into df
2 có thể là tên của trang tính [như trên], một số nguyên chỉ định số trang [ví dụ: 0, 1, v.v.], danh sách các tên hoặc chỉ số bảng hoặc df = pd.read_excel['excel_file_path.xls']
# this will read the first sheet into df
8. Nếu một danh sách được cung cấp, nó sẽ trả về một từ điển trong đó các khóa là tên/chỉ số trang tính và các giá trị là các khung dữ liệu. Mặc định là chỉ cần trả lại tờ đầu tiên [nghĩa là df = pd.read_excel['excel_file_path.xls']
# this will read the first sheet into df
9].Nếu
df = pd.read_excel['excel_file_path.xls']
# this will read the first sheet into df
8 được chỉ định, tất cả các tờ được trả lại, dưới dạng từ điển xls = pd.ExcelFile['excel_file_path.xls']
# Now you can list all sheets in the file
xls.sheet_names
# ['house', 'house_extra', ...]
# to read just one sheet to dataframe:
df = pd.read_excel[file_name, sheet_name="house"]
1.all sheets are returned, as a xls = pd.ExcelFile['excel_file_path.xls']
# Now you can list all sheets in the file
xls.sheet_names
# ['house', 'house_extra', ...]
# to read just one sheet to dataframe:
df = pd.read_excel[file_name, sheet_name="house"]
1 dictionary.Đã trả lời ngày 23 tháng 10 năm 2014 lúc 5:16Oct 23, 2014 at 5:16
NoahnoahNoah
20.3k8 Huy hiệu vàng63 Huy hiệu bạc71 Huy hiệu Đồng8 gold badges63 silver badges71 bronze badges
11
Có một vài tùy chọn:
Đọc tất cả các tờ trực tiếp vào một từ điển được đặt hàng.
import pandas as pd
# for pandas version >= 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheet_name=None]
# for pandas version < 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheetname=None]
Đọc tờ đầu tiên trực tiếp vào DataFrame
df = pd.read_excel['excel_file_path.xls']
# this will read the first sheet into df
Đọc tệp Excel và nhận danh sách các tờ. Sau đó chọn và tải các tấm.
xls = pd.ExcelFile['excel_file_path.xls']
# Now you can list all sheets in the file
xls.sheet_names
# ['house', 'house_extra', ...]
# to read just one sheet to dataframe:
df = pd.read_excel[file_name, sheet_name="house"]
Đọc tất cả các tờ và lưu trữ nó trong một từ điển. Giống như đầu tiên nhưng rõ ràng hơn.
# to read all sheets to a map
sheet_to_df_map = {}
for sheet_name in xls.sheet_names:
sheet_to_df_map[sheet_name] = xls.parse[sheet_name]
# you can also use sheet_index [0,1,2..] instead of sheet name.
Cảm ơn @ihightower vì đã chỉ ra cách đọc tất cả các tờ và @TOTO_Tico, @Red-Headphone vì đã chỉ ra sự cố phiên bản.
SheetName: Chuỗi, int, danh sách hỗn hợp các chuỗi/int hoặc không có, mặc định 0 không dùng
Đã trả lời ngày 6 tháng 9 năm 2017 lúc 18:16Sep 6, 2017 at 18:16
Vikash Singhvikash SinghVikash Singh
12.4K8 Huy hiệu vàng37 Huy hiệu bạc67 Huy hiệu Đồng8 gold badges37 silver badges67 bronze badges
2
Bạn cũng có thể sử dụng chỉ mục cho tờ:
xls = pd.ExcelFile['path_to_file.xls']
sheet1 = xls.parse[0]
sẽ đưa ra bảng tính đầu tiên. cho bảng tính thứ hai:
sheet2 = xls.parse[1]
Đã trả lời ngày 25 tháng 2 năm 2015 lúc 22:58Feb 25, 2015 at 22:58
ElliottelliottElliott
1.29112 Huy hiệu bạc12 Huy hiệu đồng12 silver badges12 bronze badges
1
Bạn cũng có thể chỉ định tên trang tính là một tham số:
data_file = pd.read_excel['path_to_file.xls', sheet_name="sheet_name"]
Sẽ chỉ tải lên trang tính
xls = pd.ExcelFile['excel_file_path.xls']
# Now you can list all sheets in the file
xls.sheet_names
# ['house', 'house_extra', ...]
# to read just one sheet to dataframe:
df = pd.read_excel[file_name, sheet_name="house"]
2.
Đã trả lời ngày 11 tháng 2 năm 2017 lúc 19:37Feb 11, 2017 at 19:37
Mat0kanMat0kanMat0kan
4214 Huy hiệu bạc4 Huy hiệu đồng4 silver badges4 bronze badges
lựa chọn 1
Nếu một người không biết tên các tờ
# Read all sheets in your File
df = pd.read_excel['FILENAME.xlsm', sheet_name=None]
# Prints all the sheets name in an ordered dictionary
print[df.keys[]]
Sau đó, tùy thuộc vào trang tính mà người ta muốn đọc, người ta có thể chuyển từng cái trong một
xls = pd.ExcelFile['excel_file_path.xls']
# Now you can list all sheets in the file
xls.sheet_names
# ['house', 'house_extra', ...]
# to read just one sheet to dataframe:
df = pd.read_excel[file_name, sheet_name="house"]
3 cụ thể, chẳng hạn nhưsheet1_df = pd.read_excel['FILENAME.xlsm', sheet_name=SHEET1NAME]
sheet2_df = pd.read_excel['FILENAME.xlsm', sheet_name=SHEET2NAME]
Lựa chọn 2
Nếu tên không liên quan và tất cả một người quan tâm là vị trí của tờ. Giả sử người ta chỉ muốn tờ đầu tiên,
import pandas as pd
# for pandas version >= 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheet_name=None]
# for pandas version < 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheetname=None]
0Sau đó, tùy thuộc vào tên trang tính, người ta có thể chuyển từng cái nó đến một
xls = pd.ExcelFile['excel_file_path.xls']
# Now you can list all sheets in the file
xls.sheet_names
# ['house', 'house_extra', ...]
# to read just one sheet to dataframe:
df = pd.read_excel[file_name, sheet_name="house"]
3 cụ thể, chẳng hạn nhưimport pandas as pd
# for pandas version >= 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheet_name=None]
# for pandas version < 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheetname=None]
1Đã trả lời ngày 24 tháng 11 năm 2020 lúc 12:15Nov 24, 2020 at 12:15
Gonçalo peresgonçalo peresGonçalo Peres
8.6713 Huy hiệu vàng41 Huy hiệu bạc69 Huy hiệu đồng3 gold badges41 silver badges69 bronze badges
import pandas as pd
# for pandas version >= 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheet_name=None]
# for pandas version < 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheetname=None]
2Theo mặc định, hãy đọc tờ đầu tiên của sổ làm việc.
import pandas as pd
# for pandas version >= 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheet_name=None]
# for pandas version < 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheetname=None]
3Đọc tờ sách cụ thể của sổ làm việc và
import pandas as pd
# for pandas version >= 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheet_name=None]
# for pandas version < 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheetname=None]
4Đọc tất cả các bảng tính từ Excel đến Pandas DataFrame dưới dạng một loại đặt hàng có nghĩa là các khung dữ liệu lồng nhau, tất cả các bảng tính khi DataFrames được thu thập bên trong DataFrame và loại được đặt hàng.
Đã trả lời ngày 1 tháng 8 năm 2019 lúc 17:01Aug 1, 2019 at 17:01
Ashu007Ashu007Ashu007
7271 Huy hiệu vàng9 Huy hiệu bạc13 Huy hiệu đồng1 gold badge9 silver badges13 bronze badges
Nếu bạn quan tâm đến việc đọc tất cả các tờ và hợp nhất chúng lại với nhau. Cách tốt nhất và nhanh nhất để làm điều đó
import pandas as pd
# for pandas version >= 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheet_name=None]
# for pandas version < 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheetname=None]
5Điều này sẽ chuyển đổi tất cả các trang tính thành một khung dữ liệu m_df
Đã trả lời ngày 11 tháng 8 năm 2020 lúc 3:02Aug 11, 2020 at 3:02
Anujsyalanujsyalanujsyal
1581 Huy hiệu bạc6 Huy hiệu đồng1 silver badge6 bronze badges
Bạn có thể đọc tất cả các tờ bằng cách sử dụng các dòng sau
import pandas as pd
# for pandas version >= 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheet_name=None]
# for pandas version < 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheetname=None]
6Đã trả lời ngày 1 tháng 9 năm 2021 lúc 13:09Sep 1, 2021 at 13:09
1
If:
- Bạn muốn nhiều, nhưng không phải tất cả, bảng tính, và
- Bạn muốn một DF duy nhất làm đầu ra
Sau đó, bạn có thể vượt qua một danh sách các tên bảng tính. Mà bạn có thể điền thủ công:
import pandas as pd
# for pandas version >= 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheet_name=None]
# for pandas version < 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheetname=None]
7HOẶC
Một chút tự động hóa là có thể nếu bảng tính mong muốn của bạn có một quy ước đặt tên chung cũng cho phép bạn phân biệt với các tờ không mong muốn:
import pandas as pd
# for pandas version >= 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheet_name=None]
# for pandas version < 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheetname=None]
8Đã trả lời ngày 17 tháng 8 năm 2020 lúc 21:32Aug 17, 2020 at 21:32
CreekgeekcaletekgeekCreekGeek
1.4891 Huy hiệu vàng12 Huy hiệu bạc20 Huy hiệu Đồng1 gold badge12 silver badges20 bronze badges
1
import pandas as pd
# for pandas version >= 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheet_name=None]
# for pandas version < 0.21.0
sheet_to_df_map = pd.read_excel[file_name, sheetname=None]
9Điều này sẽ đọc bảng
xls = pd.ExcelFile['excel_file_path.xls']
# Now you can list all sheets in the file
xls.sheet_names
# ['house', 'house_extra', ...]
# to read just one sheet to dataframe:
df = pd.read_excel[file_name, sheet_name="house"]
5 từ tệp xls = pd.ExcelFile['excel_file_path.xls']
# Now you can list all sheets in the file
xls.sheet_names
# ['house', 'house_extra', ...]
# to read just one sheet to dataframe:
df = pd.read_excel[file_name, sheet_name="house"]
6Đã trả lời ngày 27 tháng 6 năm 2021 lúc 10:32Jun 27, 2021 at 10:32
TajindertajinderTajinder
2.1784 Huy hiệu vàng30 Huy hiệu bạc 50 Huy hiệu Đồng4 gold badges30 silver badges50 bronze badges
Có, thật không may, nó sẽ luôn tải toàn bộ tệp. Nếu bạn đang làm điều này nhiều lần nhất có lẽ là tốt nhất để trích xuất các tấm để tách CSV và sau đó tải riêng. Bạn có thể tự động hóa quy trình đó với D6TStack cũng thêm các tính năng bổ sung như kiểm tra xem tất cả các cột đều bằng nhau trên tất cả các tờ hoặc nhiều tệp Excel.
df = pd.read_excel['excel_file_path.xls']
# this will read the first sheet into df
0Xem các ví dụ excel D6Tstack
Đã trả lời ngày 17 tháng 12 năm 2018 lúc 3:10Dec 17, 2018 at 3:10
CityNormancitynormancitynorman
4.4902 Huy hiệu vàng34 Huy hiệu bạc38 Huy hiệu Đồng2 gold badges34 silver badges38 bronze badges
Nếu bạn đã lưu tệp Excel trong cùng một thư mục với chương trình Python của bạn [đường dẫn tương đối] thì bạn chỉ cần đề cập đến số trang cùng với tên tệp.
Example:
df = pd.read_excel['excel_file_path.xls']
# this will read the first sheet into df
1
Albert
7.3578 Huy hiệu vàng44 Huy hiệu bạc79 Huy hiệu đồng8 gold badges44 silver badges79 bronze badges
Đã trả lời ngày 13 tháng 1 năm 2020 lúc 7:25Jan 13, 2020 at 7:25