老闆最近越來越過分了,快下班了發給我幾百個表格讓我把內容合併到一個表格內去。 還好我會Python,分分鐘就搞定了,這要是換個不會Python的,不得加班到第二天天亮去了~ 這麼好用的技能,必須分享給大家,話不多說,咱們直接開始! 準備工作 咱們需要先準備表格數據,會爬蟲的兄弟可以自己爬一點,不會的 ...
老闆最近越來越過分了,快下班了發給我幾百個表格讓我把內容合併到一個表格內去。
還好我會Python,分分鐘就搞定了,這要是換個不會Python的,不得加班到第二天天亮去了~
這麼好用的技能,必須分享給大家,話不多說,咱們直接開始!
準備工作
咱們需要先準備表格數據,會爬蟲的兄弟可以自己爬一點,不會的,可以找我直接拿數據。
表格內數據
我這裡只做展示,所以只用了五個表,咱們今天是將市級合併為省級。
本文思路
- 將當前文件夾下所有的 excel 彙總到 廣東省.xlsx
- 添加一個新的欄位 城市,欄位內容為商鋪所在城市,這個欄位放在最前面;
- 星級為 star_0 的數據全部不要
- 只要一條數據中有三個欄位為空欄位,整條數據都不需要;
- 將價格中的 ¥ 符號去掉
代碼實現
全部代碼都分享給大家,咱不喜歡藏著掖著。
import glob import openpyxl # Python學習交流群 815624229 workbook = openpyxl.Workbook() sheet_total = workbook.active sheet_total.append(['城市', '門店名稱', '星級', '星級得分', '點評總數', '人均消費', '口味', '環境', '服務', '鏈接網址', '分類', '商圈', '詳細地址', '推薦菜']) def count_none(line): """返回空內容的數據""" count = 0 for d in line: if not d: count += 1 return count filenames = glob.glob('*/*.xlsx') for filename in filenames: # print(filename) city = filename.split('.')[0].split('\\')[-1] workbook_temp = openpyxl.load_workbook(filename) sheet = workbook_temp.active for row in sheet.iter_rows(min_row=2, min_col=1, max_col=sheet.max_column, max_row=sheet.max_row): row_data = [col.value for col in row] if row_data[1] == 'star_0': continue # 定義一個方法判斷空欄位的數量 if count_none(row_data) >= 3: continue # 去掉平均價格中的 ¥ if row_data[4]: row_data[4] = row_data[4].strip('¥') row_data.insert(0, city) # print(row_data) sheet_total.append(row_data) # break # 調試只處理一個 workbook.save('廣東省.xlsx')
效果
還是剛出爐的,非常新鮮。
這我做了篩選,不然全是顯示一個地方了。
可以看到,數據成功的合併到一個表格去了。
喜歡的小伙伴記得點贊收藏呀~
關註我分享更多技術乾貨
直接拿走代碼等於白嫖,點贊收藏才是真情…
你們的支持是我更新的動力!