每天重複這樣的Excel操作,寫個python腳本多省事!

關注公衆號:【數據分析與統計學之美】,可以進羣和作者交流!

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()

結果如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章