@Kaydeann
Không có nghĩa là xóa toàn bộ sổ làm việc, chỉ những trang tính bạn không cần
Nói rằng bạn có nguồn. xlsx và đích đến. xlsx
Cả hai đều có tờ sau. sheet1, sheet2 và sheet3
Bạn chỉ muốn sao chép sheet1 và sheet2 từ nguồn. xlsx đến đích. xlsx
ở điểm đến. xlsx, xóa sheet1 và sheet2
từ nguồn. xlsx, sao chép sheet1 và sheet2 đến đích. xlsx
Theo cách đó, sheet3 ở đích. xlsx sẽ không bị ảnh hưởng
Liệu điều đó có hiệu quả?
Tôi đang chạy một quy trình chạy mỗi tuần một lần. sau khi chạy nó báo lỗi " Sheet đã tồn tại". Tôi đã đi đến trang tính mà thông tin đang được xuất ra và tạo một trang tính mới để chuyển thông tin đến và cũng thêm nó vào tệp đầu ra trong alteryx. Tại sao lỗi xuất hiện?
lớp pandas ExcelWriter[] được sử dụng để lưu DataFrame vào trang tính Excel. Lớp này chủ yếu được sử dụng khi bạn muốn lưu nhiều trang tính và nối thêm dữ liệu vào trang tính Excel hiện có
Các điểm chính của pandas ExcelWriter
- Theo mặc định, nó sử dụng xlsxwriter nếu nó được cài đặt, nếu không, nó sử dụng openpyxl
- Hỗ trợ lưu nhiều DataFrames vào một trang tính
- Bạn có thể báo lỗi khi tệp đã tồn tại
- Lưu nhiều trang tính, nối thêm trang tính hoặc tệp hiện có
1. Ví dụ nhanh về pandas ExcelWriter[]
Sau đây là một số ví dụ về cách sử dụng lớp pandas ExcelWriter[] với các ví dụ
# Write excel file with default behaviour.
with pd.ExcelWriter["courses.xlsx"] as writer:
df.to_excel[writer]
# Write to Multiple Sheets
with pd.ExcelWriter['Courses.xlsx'] as writer:
df.to_excel[writer, sheet_name='Technologies']
df2.to_excel[writer, sheet_name='Schedule']
# Append DataFrame to existing excel file
with pd.ExcelWriter['Courses.xlsx',mode='a'] as writer:
df.to_excel[writer, sheet_name='Technologies']
Hãy tạo một DataFrame gấu trúc từ danh sách và sử dụng các ví dụ được chỉ định ở trên để chạy và khám phá đầu ra
import pandas as pd
import numpy as np
# Create DataFrame from multiple lists
technologies = ['Spark','Pandas','Java','Python', 'PHP']
fee = [25000,20000,15000,15000,18000]
duration = ['5o Days','35 Days',np.nan,'30 Days', '30 Days']
discount = [2000,1000,800,500,800]
columns=['Courses','Fee','Duration','Discount']
df = pd.DataFrame[list[zip[technologies,fee,duration,discount]], columns=columns]
print[df]
# Outputs
# Courses Fee Duration Discount
#0 Spark 25000 5o 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
2. Cú pháp ExcelWriter[]
Sau đây là cú pháp của lớp ExcelWrite. Đối tượng của lớp này được sử dụng làm đối số cho DataFrame. hàm to_excel[] để ghi DataFrame vào bảng excel
# Syntax of pandas.ExcelWriter
class pandas.ExcelWriter[path, engine=None, date_format=None, datetime_format=None, mode='w', storage_options=None, if_sheet_exists=None, engine_kwargs=None, **kwargs]
Sau đây là một số thông số
1 – Đường dẫn nơi lưu tệpimport pandas as pd import numpy as np # Create DataFrame from multiple lists technologies = ['Spark','Pandas','Java','Python', 'PHP'] fee = [25000,20000,15000,15000,18000] duration = ['5o Days','35 Days',np.nan,'30 Days', '30 Days'] discount = [2000,1000,800,500,800] columns=['Courses','Fee','Duration','Discount'] df = pd.DataFrame[list[zip[technologies,fee,duration,discount]], columns=columns] print[df] # Outputs # Courses Fee Duration Discount #0 Spark 25000 5o 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
2 – Nhận các giá trị {‘error’, ‘new’, ‘replace’, ‘overlay’}, default ‘error’. Sử dụng điều này để tăng lỗi nếu trang tính tồn tại, thay thế nội dung hiện có bằng dữ liệu mới. nội dung lớp phủ ở cuối mà không xóa nội dungimport pandas as pd import numpy as np # Create DataFrame from multiple lists technologies = ['Spark','Pandas','Java','Python', 'PHP'] fee = [25000,20000,15000,15000,18000] duration = ['5o Days','35 Days',np.nan,'30 Days', '30 Days'] discount = [2000,1000,800,500,800] columns=['Courses','Fee','Duration','Discount'] df = pd.DataFrame[list[zip[technologies,fee,duration,discount]], columns=columns] print[df] # Outputs # Courses Fee Duration Discount #0 Spark 25000 5o 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
3 – {‘w’, ‘a’}, mặc định là ‘w’. W để viết, a để nối thêmimport pandas as pd import numpy as np # Create DataFrame from multiple lists technologies = ['Spark','Pandas','Java','Python', 'PHP'] fee = [25000,20000,15000,15000,18000] duration = ['5o Days','35 Days',np.nan,'30 Days', '30 Days'] discount = [2000,1000,800,500,800] columns=['Courses','Fee','Duration','Discount'] df = pd.DataFrame[list[zip[technologies,fee,duration,discount]], columns=columns] print[df] # Outputs # Courses Fee Duration Discount #0 Spark 25000 5o 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
- lưu trữ_options –
3. Ví dụ ExcelWriter[]
Bằng cách sử dụng pandas ExcelWriter[], hãy xem cách lưu DataFrame thành excel với các tham số mặc định
# Write excel file with default behaviour.
with pd.ExcelWriter["courses.xlsx"] as writer:
df.to_excel[writer]
Điều này tạo ra một tệp excel với nội dung như dưới đây. Theo mặc định, Nó xuất tên cột, chỉ mục và dữ liệu sang trang tính có tên
import pandas as pd
import numpy as np
# Create DataFrame from multiple lists
technologies = ['Spark','Pandas','Java','Python', 'PHP']
fee = [25000,20000,15000,15000,18000]
duration = ['5o Days','35 Days',np.nan,'30 Days', '30 Days']
discount = [2000,1000,800,500,800]
columns=['Courses','Fee','Duration','Discount']
df = pd.DataFrame[list[zip[technologies,fee,duration,discount]], columns=columns]
print[df]
# Outputs
# Courses Fee Duration Discount
#0 Spark 25000 5o 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
44. Lưu vào nhiều trang tính
Lớp ExcelWriter cho phép bạn lưu hoặc xuất nhiều DataFrames gấu trúc sang các trang tính riêng biệt. Đầu tiên, bạn cần tạo một đối tượng cho ExcelWriter
Ví dụ dưới đây lưu dữ liệu từ đối tượng
import pandas as pd
import numpy as np
# Create DataFrame from multiple lists
technologies = ['Spark','Pandas','Java','Python', 'PHP']
fee = [25000,20000,15000,15000,18000]
duration = ['5o Days','35 Days',np.nan,'30 Days', '30 Days']
discount = [2000,1000,800,500,800]
columns=['Courses','Fee','Duration','Discount']
df = pd.DataFrame[list[zip[technologies,fee,duration,discount]], columns=columns]
print[df]
# Outputs
# Courses Fee Duration Discount
#0 Spark 25000 5o 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
0 vào trang tính có tên
import pandas as pd
import numpy as np
# Create DataFrame from multiple lists
technologies = ['Spark','Pandas','Java','Python', 'PHP']
fee = [25000,20000,15000,15000,18000]
duration = ['5o Days','35 Days',np.nan,'30 Days', '30 Days']
discount = [2000,1000,800,500,800]
columns=['Courses','Fee','Duration','Discount']
df = pd.DataFrame[list[zip[technologies,fee,duration,discount]], columns=columns]
print[df]
# Outputs
# Courses Fee Duration Discount
#0 Spark 25000 5o 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
1 và đối tượng
import pandas as pd
import numpy as np
# Create DataFrame from multiple lists
technologies = ['Spark','Pandas','Java','Python', 'PHP']
fee = [25000,20000,15000,15000,18000]
duration = ['5o Days','35 Days',np.nan,'30 Days', '30 Days']
discount = [2000,1000,800,500,800]
columns=['Courses','Fee','Duration','Discount']
df = pd.DataFrame[list[zip[technologies,fee,duration,discount]], columns=columns]
print[df]
# Outputs
# Courses Fee Duration Discount
#0 Spark 25000 5o 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
2 vào trang tính có tên
import pandas as pd
import numpy as np
# Create DataFrame from multiple lists
technologies = ['Spark','Pandas','Java','Python', 'PHP']
fee = [25000,20000,15000,15000,18000]
duration = ['5o Days','35 Days',np.nan,'30 Days', '30 Days']
discount = [2000,1000,800,500,800]
columns=['Courses','Fee','Duration','Discount']
df = pd.DataFrame[list[zip[technologies,fee,duration,discount]], columns=columns]
print[df]
# Outputs
# Courses Fee Duration Discount
#0 Spark 25000 5o 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
3________số 83. Nối vào tệp Excel hiện có
ExcelWriter có thể được sử dụng để nối thêm DataFrame vào tệp excel. Sử dụng tham số
import pandas as pd
import numpy as np
# Create DataFrame from multiple lists
technologies = ['Spark','Pandas','Java','Python', 'PHP']
fee = [25000,20000,15000,15000,18000]
duration = ['5o Days','35 Days',np.nan,'30 Days', '30 Days']
discount = [2000,1000,800,500,800]
columns=['Courses','Fee','Duration','Discount']
df = pd.DataFrame[list[zip[technologies,fee,duration,discount]], columns=columns]
print[df]
# Outputs
# Courses Fee Duration Discount
#0 Spark 25000 5o 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
3 với giá trị
import pandas as pd
import numpy as np
# Create DataFrame from multiple lists
technologies = ['Spark','Pandas','Java','Python', 'PHP']
fee = [25000,20000,15000,15000,18000]
duration = ['5o Days','35 Days',np.nan,'30 Days', '30 Days']
discount = [2000,1000,800,500,800]
columns=['Courses','Fee','Duration','Discount']
df = pd.DataFrame[list[zip[technologies,fee,duration,discount]], columns=columns]
print[df]
# Outputs
# Courses Fee Duration Discount
#0 Spark 25000 5o 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
5 để nối thêm. Đoạn mã dưới đây mở một tệp hiện có và thêm dữ liệu từ DataFrame vào trang tính đã chỉ định
import pandas as pd
import numpy as np
# Create DataFrame from multiple lists
technologies = ['Spark','Pandas','Java','Python', 'PHP']
fee = [25000,20000,15000,15000,18000]
duration = ['5o Days','35 Days',np.nan,'30 Days', '30 Days']
discount = [2000,1000,800,500,800]
columns=['Courses','Fee','Duration','Discount']
df = pd.DataFrame[list[zip[technologies,fee,duration,discount]], columns=columns]
print[df]
# Outputs
# Courses Fee Duration Discount
#0 Spark 25000 5o 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
0Sự kết luận
Trong bài viết này, bạn đã học cú pháp của lớp ExcelWrite, cách sử dụng nó để lưu nhiều DataFrame vào tệp excel, nối thêm vào trang tính hiện có e. t. c