Trước khi đọc một file excel trong pandas, chúng ta cần cài đặt thư viện openpyxl. Đây là thư viện phụ thuộc cần thiết để đọc và ghi tệp excel trong pandas
Trong Terminal trên Mac hoặc Dòng lệnh trong windows, trước tiên hãy chạy lệnh sau
pip install openpyxl
Và trong bài đăng này, chúng tôi sẽ làm việc với tệp mẫu này mà bạn có thể tải xuống từ đây – liên kết tải xuống dữ liệu
Ở đây, chúng tôi có một số dữ liệu bán hàng trong nhiều trang tính và chúng tôi muốn đọc những dữ liệu này bằng pandas. hãy xem làm thế nào để làm điều đó
Đầu tiên để lấy tên của tất cả các sheet trong file excel ta có thể sử dụng lệnh pd. Tệp Excel[]
sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
giả sử chúng ta muốn đọc dữ liệu Đơn đặt hàng 1. Để làm điều đó, chúng ta cần chuyển tên trang tính cho tham số sheet_name trong pandas.
df = pd.read_excel['reading_excel_file.xlsx', sheet_name='Purchase Orders 1']
2. Cách bỏ qua hàng khi đọc tệp excel trong pandas
Nếu bạn muốn bỏ qua số n hàng từ trên xuống, bạn cần sử dụng tham số bỏ qua
Giả sử chúng ta muốn bỏ qua 2 hàng đầu tiên khi đọc tệp
df = pd.read_excel['reading_excel_file.xlsx',
sheet_name='Purchase Orders 1',
skiprows=2]
Chúng ta có thể thấy rằng hai hàng trên cùng đã bị bỏ qua khỏi kết quả.
Và nếu bạn muốn bỏ qua n hàng từ cuối, bạn có thể sử dụng tham số skipfooter
Giả sử chúng ta muốn bỏ qua 3 hàng từ cuối
df = pd.read_excel['reading_excel_file.xlsx',
sheet_name='Purchase Orders 1',
skipfooter=3]
3. Cách bỏ qua các cột khi đọc tệp excel trong gấu trúc.
Để bỏ cột khi đọc file excel, bạn có thể sử dụng tham số usecols của read_excel
giả sử tôi chỉ quan tâm đến việc đọc các cột từ ID sản phẩm đến Số lượng đặt hàng
df = pd.read_excel['reading_excel_file.xlsx',
sheet_name='Purchase Orders 1',
usecols='C:F']
Bây giờ, giả sử bạn muốn chọn hai cột đầu tiên và hai cột cuối cùng. Để làm điều đó, bạn sẽ viết
df = pd.read_excel['reading_excel_file.xlsx',
sheet_name='Purchase Orders 1',
usecols='A:B, H:I']
4. Cách đọc tệp excel trong gấu trúc có tiêu đề
Đôi khi có thể xảy ra trường hợp dữ liệu mà bạn muốn làm việc không bắt đầu từ hàng đầu tiên. Hãy sao chép dữ liệu bán hàng sang một tệp excel mới và thêm một số dòng trống trước dữ liệu để chứng minh rằng
Bây giờ, nếu bạn nhìn vào hình bên dưới, bạn có thể thấy rằng dữ liệu không bắt đầu từ hàng đầu tiên. Có rất nhiều hàng trống mà gấu trúc điền vào NaN [Không phải là số] và tên cột cũng được đặt tên là Chưa đặt tên
Chúng tôi sẽ tiếp tục tập này từ nơi chúng tôi đã dừng lại trong tập trước. Nếu bạn đã khởi động lại Jupyter hoặc bạn muốn sử dụng sổ ghi chép mới, hãy đảm bảo rằng bạn đã nhập pandas và đã đọc SN7577. tập dữ liệu tab vào Dataframe
import pandas as pd
df_SN7577 = pd.read_csv["SN7577.tab", sep='\t']
Chọn các hàng và cột từ Dataframe gấu trúc
Nếu chúng tôi biết cột nào chúng tôi muốn trước khi đọc dữ liệu từ tệp, chúng tôi có thể yêu cầu
df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= [0,1,2,173,174,175]]
print[df_SN7577_some_cols.shape]
print[df_SN7577_some_cols.columns]
df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= ['Q1', 'Q2', 'Q3', 'sex', 'age', 'agegroups']]
print[df_SN7577_some_cols.columns]
8 chỉ nhập các cột đó bằng cách chỉ định các cột theo số chỉ mục của chúng [bắt đầu từ 0] dưới dạng danh sách cho tham số df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= [0,1,2,173,174,175]]
print[df_SN7577_some_cols.shape]
print[df_SN7577_some_cols.columns]
df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= ['Q1', 'Q2', 'Q3', 'sex', 'age', 'agegroups']]
print[df_SN7577_some_cols.columns]
9. Ngoài ra, chúng tôi cũng có thể cung cấp danh sách tên cột________số 8
sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
1Bây giờ chúng ta hãy giả sử rằng chúng ta đã đọc trong tệp hoàn chỉnh hiện có trong Dataframe
sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
10, làm thế nào bây giờ chúng ta có thể tham chiếu đến các cột cụ thể?Có hai cách để thực hiện việc này bằng cách sử dụng tên cột [hoặc nhãn]
sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
3sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
4Nếu chúng tôi quan tâm đến nhiều cột, phương pháp thứ 2 ở trên không thể được sử dụng. Tuy nhiên, trong lần đầu tiên, mặc dù chúng tôi đã sử dụng một chuỗi có giá trị là
sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
11 nhưng chúng tôi cũng có thể cung cấp một danh sách các chuỗi. Hãy nhớ rằng các danh sách được đính kèm trong sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
12sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
7sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
8Tập thể dục
Điều gì xảy ra nếu bạn
- Liệt kê các cột bạn muốn sắp xếp theo thứ tự chúng xuất hiện trong tệp?
- Đặt cùng một tên cột trong hai lần?
- Đặt tên cột không tồn tại? . k. một lỗi đánh máy]
Dung dịch
9sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names sheets_names
Lọc theo hàng
Bạn có thể lọc Khung dữ liệu theo hàng bằng cách chỉ định một phạm vi ở dạng
sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
13. sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
14 là hàng đầu tiên và sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
15 là hàng ngoài hàng cuối cùng được yêu cầudf = pd.read_excel['reading_excel_file.xlsx', sheet_name='Purchase Orders 1']
3Tập thể dục
Điều gì xảy ra nếu chúng tôi yêu cầu một hàng thay vì một phạm vi?
Dung dịch
4df = pd.read_excel['reading_excel_file.xlsx', sheet_name='Purchase Orders 1']
Bạn gặp lỗi nếu chỉ xác định
16. Bạn cần sử dụngsheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names sheets_names
17 hoặcsheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names sheets_names
18 để trả về hàng đầu tiên.sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names sheets_names
19 luôn được yêu cầu. Bạn có thể sử dụng chínhsheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names sheets_names
19 để trả về tất cả các hàngsheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names sheets_names
Sử dụng tiêu chí để lọc hàng
Có nhiều khả năng bạn sẽ muốn chọn các hàng từ Khung dữ liệu dựa trên một số tiêu chí, chẳng hạn như “tất cả các hàng có giá trị cho Q2 là -1”
df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= [0,1,2,173,174,175]]
print[df_SN7577_some_cols.shape]
print[df_SN7577_some_cols.columns]
df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= ['Q1', 'Q2', 'Q3', 'sex', 'age', 'agegroups']]
print[df_SN7577_some_cols.columns]
0Các tiêu chí có thể phức tạp hơn và không giới hạn ở các giá trị của một cột
df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= [0,1,2,173,174,175]]
print[df_SN7577_some_cols.shape]
print[df_SN7577_some_cols.columns]
df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= ['Q1', 'Q2', 'Q3', 'sex', 'age', 'agegroups']]
print[df_SN7577_some_cols.columns]
1Ta có thể kết hợp chọn hàng với chọn cột
df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= [0,1,2,173,174,175]]
print[df_SN7577_some_cols.shape]
print[df_SN7577_some_cols.columns]
df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= ['Q1', 'Q2', 'Q3', 'sex', 'age', 'agegroups']]
print[df_SN7577_some_cols.columns]
2Việc chọn các hàng trên chỉ mục hàng được sử dụng hạn chế trừ khi bạn cần chọn một phạm vi hàng liền kề
Tuy nhiên, có một cách khác để chọn hàng bằng cách sử dụng chỉ mục hàng
df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= [0,1,2,173,174,175]]
print[df_SN7577_some_cols.shape]
print[df_SN7577_some_cols.columns]
df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= ['Q1', 'Q2', 'Q3', 'sex', 'age', 'agegroups']]
print[df_SN7577_some_cols.columns]
3Sử dụng phương pháp
sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
31 cho kết quả giống như ví dụ trước của chúng tôiTuy nhiên, bây giờ chúng ta có thể chỉ định một giá trị duy nhất và quan trọng hơn là chúng ta có thể sử dụng hàm
sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
32 để chỉ ra các bản ghi mà chúng ta muốn. Điều này có thể hữu ích để thực hiện các lựa chọn giả ngẫu nhiên của các hàng từ khắp Khung dữ liệudf_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= [0,1,2,173,174,175]]
print[df_SN7577_some_cols.shape]
print[df_SN7577_some_cols.columns]
df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= ['Q1', 'Q2', 'Q3', 'sex', 'age', 'agegroups']]
print[df_SN7577_some_cols.columns]
4Bạn cũng có thể chỉ định phạm vi cột bằng cách sử dụng lại phương pháp
sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
31 bằng cách sử dụng số chỉ mục cộtdf_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= [0,1,2,173,174,175]]
print[df_SN7577_some_cols.shape]
print[df_SN7577_some_cols.columns]
df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= ['Q1', 'Q2', 'Q3', 'sex', 'age', 'agegroups']]
print[df_SN7577_some_cols.columns]
5Ngoài ra còn có một phương thức
sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
34 cho phép bạn sử dụng tên cộtdf_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= [0,1,2,173,174,175]]
print[df_SN7577_some_cols.shape]
print[df_SN7577_some_cols.columns]
df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= ['Q1', 'Q2', 'Q3', 'sex', 'age', 'agegroups']]
print[df_SN7577_some_cols.columns]
6Lấy mẫu
Pandas có phương thức
sheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names
sheets_names
35 cho phép bạn trích xuất một mẫu bản ghi từ Dataframedf_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= [0,1,2,173,174,175]]
print[df_SN7577_some_cols.shape]
print[df_SN7577_some_cols.columns]
df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= ['Q1', 'Q2', 'Q3', 'sex', 'age', 'agegroups']]
print[df_SN7577_some_cols.columns]
7Những điểm chính
Nhập các cột cụ thể khi đọc trong một. csv với tham số
9df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= [0,1,2,173,174,175]] print[df_SN7577_some_cols.shape] print[df_SN7577_some_cols.columns] df_SN7577_some_cols = pd.read_csv["SN7577.tab", sep='\t', usecols= ['Q1', 'Q2', 'Q3', 'sex', 'age', 'agegroups']] print[df_SN7577_some_cols.columns]
Chúng ta có thể dễ dàng xâu chuỗi các điều kiện boolean khi lọc các hàng của khung dữ liệu gấu trúc
Các phương thức
34 vàsheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names sheets_names
31 cho phép chúng tôi lấy các hàng có nhãn cụ thể và tại các vị trí số nguyên cụ thể tương ứngsheets_names = pd.ExcelFile['reading_excel_file.xlsx'].sheet_names sheets_names
Làm cách nào để đọc excel bằng gấu trúc trong Python?
Cách đọc nhiều trang tính từ một tệp Excel trong Pandas? .nhập gấu trúc dưới dạng pd Sheet1=pd. read_excel['/content/Subject_Scores. xlsx', sheet_name=0] Sheet2=pd. read_excel['/content/Subject_Scores. xlsx', sheet_name=1] print["Trang tính 1. \n",Sheet1] print[] print["Sheet1. \n",Trang tính 2]Tờ1. CuộnCách hiển thị các hàng và cột cụ thể trong gấu trúc?
Để chọn một số hàng và cột cụ thể, bạn có thể thực hiện các thao tác sau bằng cách sử dụng. lộc . Để chọn một giá trị từ DataFrame, bạn có thể làm như sau. Bạn có thể sử dụng cắt để chọn một cột cụ thể.