關注公衆號:【數據分析與統計學之美】,可以進羣和作者交流!
1. 提出需求
這是羣裏面一位朋友提出的一個需求,具體需求是啥樣的?有這樣一個工作簿,我們要針對sheet1表中的數據,篩選出【地區==深證】的數據,將其寫入sheet2表中。與此同時,sheet1的數據就變成了【非深圳】的那些數據。
2. 原始數據預覽
觀察下面的原始數據可以發現:這個工作簿目前只有一個sheet1表,表中有一些樣本數據。我們此時要做的,就是篩選【地區==深證】的數據,將其寫入同一個工作簿的sheet2表中。同時這個sheet1表中的數據,最後要變成【去掉深證後】的數據。
3. 解決問題
我的思路大致是這樣的:因爲該需求對於數據的操作,都必須是在這同一個工作簿中進行。因此我先將“篩選出來的深圳數據”寫入到sheet2中,然後刪除原始的sheet1表,最後再將“去掉深證後的數據”寫入到sheet1中,大功告成!
import pandas as pd
from openpyxl import load_workbook
df = pd.read_excel(r"G:\1微信公衆號圖片素材\寫好的文章\工作簿 (1).xlsx",sheet_name='Sheet1')
# 篩選得到“非深圳”的數據
df1 = df[df["地區"] != "深圳"]
# 篩選得到“都是深圳”的數據
df2 = df[df["地區"] == "深圳"]
# 在ExcelWriter的源代碼中,它會初始化得到一個空的工作簿
writer = pd.ExcelWriter(r"G:\1微信公衆號圖片素材\寫好的文章\工作簿 (1).xlsx",engine='openpyxl')
# print(writer.path)
# 利用openpyxl讀取工作簿 (1).xlsx工作簿
workbook = load_workbook(writer.path)
# 動態添加一個工作簿,此時writer就不是一個空的工作簿了
writer.book = workbook
# 將“都是深圳”的數據,首先寫入到“sheet2表”中
df2.to_excel(excel_writer=writer,sheet_name="Sheet2",index=False)
# 刪除原始的“sheet1表”
sheet = workbook["Sheet1"]
workbook.remove(sheet)
workbook.save(filename = r"G:\1微信公衆號圖片素材\寫好的文章\工作簿 (1).xlsx")
# 再將“非深圳”的數據,寫入到“sheet1表”中
df1.to_excel(excel_writer=writer,sheet_name="Sheet1",index=False)
writer.save()
writer.close()
結果如下: