Trong phần này, tôi sẽ trình bày cách sử dụng thư viện Pandas với Excel. Chúng tôi sẽ sử dụng các thao tác bảng excel cơ bản như tạo trang tính mới, thêm dữ liệu hàng loạt, nối thêm dữ liệu, đọc dữ liệu, định dạng dữ liệu và thêm biểu đồ
Cài đặt
Thực hiện các lệnh sau để cài đặt các thư viện Pandas, xlsxwriter, xlrd và openpyxl
pip install pandaspip install xlsxwriterpip install xlrdpip install openpyxl
Tạo một bảng tính Excel_______1_______
Mã này sẽ tạo một tệp demo.xlsx
mới với trang tính mặc định có tên là Sheet1
Lưu ý rằng trên tệp excel của chúng tôi, hàng trên cùng chứa tiêu đề của bảng có thể được sử dụng làm tên cột trên DataFrame
1. gấu trúc Đọc bảng tính Excel
sử dụng gấu trúc. read_excel[] để đọc bảng excel vào DataFrame của gấu trúc, theo mặc định, nó tải trang đầu tiên từ tệp excel và phân tích hàng đầu tiên dưới dạng tên cột DataFrame. Tệp Excel có phần mở rộng. xlsx. Chức năng này cũng hỗ trợ một số tiện ích mở rộng xls, xlsx, xlsm, xlsb, odf, ods và odt
Sau đây là một số tính năng được hỗ trợ bởi read_excel[] với tham số tùy chọn
- Đọc tệp excel từ URL, S3 và từ quảng cáo tệp cục bộ hỗ trợ một số tiện ích mở rộng
- Bỏ qua tên cột và cung cấp tùy chọn đặt tên cột
- Đặt cột làm Chỉ mục
- Coi nhiều giá trị là NaN
- Điểm thập phân để sử dụng cho số
- Kiểu dữ liệu cho mỗi cột
- Bỏ qua hàng và cột
Tôi sẽ giới thiệu cách sử dụng một số tham số tùy chọn này với các ví dụ, trước tiên hãy xem cách đọc bảng excel và tạo DataFrame mà không cần bất kỳ tham số nào
import pandas as pd
# Read Excel file
df = pd.read_excel['c:/apps/courses_schedule.xlsx']
print[df]
# Outputs
# Courses Fee Duration Discount
#0 Spark 25000 50 Days 2000
#1 Pandas 20000 35 Days 1000
#2 Java 15000 NaN 800
#3 Python 15000 30 Days 500
#4 PHP 18000 30 Days 800
Có liên quan. pandas Ghi vào bảng tính Excel
2. Đọc bằng cách bỏ qua tên cột
Theo mặc định, nó coi hàng đầu tiên từ excel làm tiêu đề và sử dụng nó làm tên cột DataFrame. Trong trường hợp bạn muốn coi hàng đầu tiên từ excel là bản ghi dữ liệu, hãy sử dụng tham số
# Read excel by considering first row as data
columns = ['courses','course_fee','course_duration','course_discount']
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
header=None, names = columns]
print[df2]
# Outputs
#0 courses course_fee Duration Discount
#1 Spark 25000 50 Days 2000
#2 Pandas 20000 35 Days 1000
#3 Java 15000 NaN 800
#4 Python 15000 30 Days 500
#5 PHP 18000 30 Days 800
3 và sử dụng tham số tên để chỉ định tên cột. Không chỉ định tên dẫn đến tên cột có số
# Read excel by considering first row as data
columns = ['courses','course_fee','course_duration','course_discount']
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
header=None, names = columns]
print[df2]
# Outputs
#0 courses course_fee Duration Discount
#1 Spark 25000 50 Days 2000
#2 Pandas 20000 35 Days 1000
#3 Java 15000 NaN 800
#4 Python 15000 30 Days 500
#5 PHP 18000 30 Days 800
3. Đặt Cột từ Excel làm Chỉ mục
Nếu bạn để ý, DataFrame đã được tạo với chỉ mục mặc định, nếu bạn muốn đặt tên cột làm chỉ mục, hãy sử dụng tham số
# Read excel by considering first row as data
columns = ['courses','course_fee','course_duration','course_discount']
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
header=None, names = columns]
print[df2]
# Outputs
#0 courses course_fee Duration Discount
#1 Spark 25000 50 Days 2000
#2 Pandas 20000 35 Days 1000
#3 Java 15000 NaN 800
#4 Python 15000 30 Days 500
#5 PHP 18000 30 Days 800
4. Tham số này nhận các giá trị {int, danh sách int, mặc định Không có}. Nếu một danh sách được chuyển với các vị trí tiêu đề, nó sẽ tạo ra một MultiIndexTheo mặc định, nó được đặt thành
# Read excel by considering first row as data
columns = ['courses','course_fee','course_duration','course_discount']
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
header=None, names = columns]
print[df2]
# Outputs
#0 courses course_fee Duration Discount
#1 Spark 25000 50 Days 2000
#2 Pandas 20000 35 Days 1000
#3 Java 15000 NaN 800
#4 Python 15000 30 Days 500
#5 PHP 18000 30 Days 800
5 nghĩa là cột không được đặt làm chỉ mục
# Read excel by setting column as index
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
index_col=0]
print[df2]
# Outputs
# Fee Duration Discount
#Courses
#Spark 25000 50 Days 2000
#Pandas 20000 35 Days 1000
#Java 15000 NaN 800
#Python 15000 30 Days 500
#PHP 18000 30 Days 800
4. Đọc Excel theo tên trang tính
Như tôi đã nói ở phần trên, theo mặc định, gấu trúc đọc trang đầu tiên từ tệp excel và cung cấp thông số
# Read excel by considering first row as data
columns = ['courses','course_fee','course_duration','course_discount']
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
header=None, names = columns]
print[df2]
# Outputs
#0 courses course_fee Duration Discount
#1 Spark 25000 50 Days 2000
#2 Pandas 20000 35 Days 1000
#3 Java 15000 NaN 800
#4 Python 15000 30 Days 500
#5 PHP 18000 30 Days 800
6 để đọc một trang cụ thể theo tên. Thông số này lấy {str, int, list hoặc None} làm giá trị. Điều này cũng được sử dụng để tải một trang tính theo vị tríTheo mặc định, nó được đặt thành 0 nghĩa là tải trang đầu tiên
# Read specific excel sheet
df = pd.read_excel['records.xlsx', sheet_name='Sheet1']
print[df]
5. đọc hai tờ
Thông số
# Read excel by considering first row as data
columns = ['courses','course_fee','course_duration','course_discount']
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
header=None, names = columns]
print[df2]
# Outputs
#0 courses course_fee Duration Discount
#1 Spark 25000 50 Days 2000
#2 Pandas 20000 35 Days 1000
#3 Java 15000 NaN 800
#4 Python 15000 30 Days 500
#5 PHP 18000 30 Days 800
6 cũng lấy danh sách tên trang tính làm giá trị có thể được sử dụng để đọc hai trang tính vào DataFrame của gấu trúc. Không phải trong khi đọc hai 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à DataFrameSử dụng
# Read excel by considering first row as data
columns = ['courses','course_fee','course_duration','course_discount']
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
header=None, names = columns]
print[df2]
# Outputs
#0 courses course_fee Duration Discount
#1 Spark 25000 50 Days 2000
#2 Pandas 20000 35 Days 1000
#3 Java 15000 NaN 800
#4 Python 15000 30 Days 500
#5 PHP 18000 30 Days 800
5 để tải tất cả các trang tính từ excel và trả về Dict of Dictionary
# Read Multiple sheets
dict_df = pd.read_excel['c:/apps/courses_schedule.xlsx',
sheet_name=['Technologies','Schedule']]
# Get DataFrame from Dict
technologies_df = dict_df .get['Technologies']
schedule_df = dict_df.get['Schedule']
# Print DataFrame's
print[technologies_df]
print[schedule_df]
Tôi sẽ để việc này cho bạn thực hiện và xác thực đầu ra
6. Bỏ qua các cột từ trang tính Excel
Đôi khi, khi đọc một bảng excel vào DataFrame của gấu trúc, bạn có thể cần bỏ qua các cột, bạn có thể thực hiện việc này bằng cách sử dụng tham số
# Read excel by considering first row as data
columns = ['courses','course_fee','course_duration','course_discount']
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
header=None, names = columns]
print[df2]
# Outputs
#0 courses course_fee Duration Discount
#1 Spark 25000 50 Days 2000
#2 Pandas 20000 35 Days 1000
#3 Java 15000 NaN 800
#4 Python 15000 30 Days 500
#5 PHP 18000 30 Days 800
9. Cái này nhận các giá trị {int, str, list-like, hoặc callable default Không}. Để chỉ định danh sách tên cột hoặc vị trí, hãy sử dụng danh sách chuỗi hoặc danh sách intTheo mặc định, nó được đặt thành Không có nghĩa là tải tất cả các cột
# Read excel by skipping columns
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
usecols=['Courses', 'Duration']]
print[df2]
# Outputs
# Courses Duration
#0 Spark 50 Days
#1 Pandas 35 Days
#2 Java NaN
#3 Python 30 Days
#4 PHP 30 Days
Ngoài ra, bạn cũng có thể viết theo vị trí cột
# Skip columns with list of values
df = pd.read_excel['records.xlsx', usecols=[0,2]]
print[df]
Cũng hỗ trợ một loạt các cột như giá trị. Ví dụ: giá trị 'B. D’ có nghĩa là phân tích các cột B, C và D
# Skip columns by range
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
usecols='B:D']
print[df2]
Fee Duration Discount
0 25000 50 Days 2000
1 20000 35 Days 1000
2 15000 NaN 800
3 15000 30 Days 500
4 18000 30 Days 800
7. Bỏ qua hàng từ trang tính Excel
Sử dụng tham số
# Read excel by setting column as index
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
index_col=0]
print[df2]
# Outputs
# Fee Duration Discount
#Courses
#Spark 25000 50 Days 2000
#Pandas 20000 35 Days 1000
#Java 15000 NaN 800
#Python 15000 30 Days 500
#PHP 18000 30 Days 800
0 để bỏ qua các hàng từ tệp excel, tham số này nhận các giá trị {list-like, int hoặc callable, optional}. Với điều này, bạn có thể bỏ qua một vài hàng đầu tiên, hàng đã chọn và phạm vi hàng. Ví dụ dưới đây bỏ qua 3 hàng đầu tiên và coi hàng thứ 4 từ excel là tiêu đề
# Read excel file by skipping rows
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
skiprows=2]
print[df2]
Pandas 20000 35 Days 1000
0 Java 15000 NaN 800
1 Python 15000 30 Days 500
2 PHP 18000 30 Days 800
Sử dụng
# Read excel by considering first row as data
columns = ['courses','course_fee','course_duration','course_discount']
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
header=None, names = columns]
print[df2]
# Outputs
#0 courses course_fee Duration Discount
#1 Spark 25000 50 Days 2000
#2 Pandas 20000 35 Days 1000
#3 Java 15000 NaN 800
#4 Python 15000 30 Days 500
#5 PHP 18000 30 Days 800
3 để coi hàng thứ 4 là dữ liệu. bạn cũng có thể sử dụng danh sách các hàng để bỏ qua
# Using skiprows to skip rows
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
skiprows=[1,3]]
print[df2]
Courses Fee Duration Discount
0 Pandas 20000 35 Days 1000
1 Python 15000 30 Days 500
2 PHP 18000 30 Days 800
Bằng cách sử dụng biểu thức lambda
# Read excel by considering first row as data
columns = ['courses','course_fee','course_duration','course_discount']
df2 = pd.read_excel['c:/apps/courses_schedule.xlsx',
header=None, names = columns]
print[df2]
# Outputs
#0 courses course_fee Duration Discount
#1 Spark 25000 50 Days 2000
#2 Pandas 20000 35 Days 1000
#3 Java 15000 NaN 800
#4 Python 15000 30 Days 500
#5 PHP 18000 30 Days 800
08. Các thông số quan trọng khác
- dtype - Dict với tên cột một loại
- nrows – Có bao nhiêu hàng để phân tích cú pháp
- na_values – Các chuỗi bổ sung để nhận dạng là NA/NaN.
- keep_default_na – Có hay không bao gồm các giá trị NaN mặc định khi phân tích dữ liệu.
- na_filter – Lọc các giá trị bị thiếu
- parse_dates – Chỉ định chỉ mục cột mà bạn muốn phân tích dưới dạng ngày tháng
- hàng nghìn – Dấu phân cách hàng nghìn để phân tích các cột chuỗi thành số
- skipfooter – Chỉ định cách các hàng bạn muốn bỏ qua từ chân trang
- mangle_dupe_cols – Các cột trùng lặp sẽ được chỉ định là ‘X’, ‘X. 1’, …’X. N',
Để biết thông số và mô tả đầy đủ, hãy tham khảo tài liệu về gấu trúc
Phần kết luận
Trong bài viết này, bạn đã học cách đọc một trang tính Excel và chuyển đổi nó thành DataFrame bằng cách bỏ qua tiêu đề, bỏ qua hàng, bỏ qua cột, chỉ định tên cột, v.v.