自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

手把手教你用Python批量實(shí)現(xiàn)在Excel后里面新加一列,并且內(nèi)容為Excel表名

開發(fā) 后端
本文基于粉絲針對Python自動化辦公的提問,給出了一個利用Python基礎(chǔ)+pandas文件處理的解決方案,完全滿足了粉絲的要求,給粉絲節(jié)約了大量的時間。

[[441492]]

前言

前幾天在鉑金交流群里,有個叫【🇼 🇺 🇱 🇦】的粉絲在Python交流群里問了一道關(guān)于Python自動化辦公的問題,初步一看覺得很簡單,實(shí)際上確實(shí)是有難度的,題目如下圖所示。

二、解決思路

如果是按照常規(guī)思路,首先打開一個Excel表格,之后在表格的最后一列添加對應(yīng)表名,如果只是一個表格,表格內(nèi)容只有一行的話,這么操作,三下五除二就完活了。但是如果遇到很多個表格,如果再這樣逐個處理,就非常疲勞了。

不過這里給大家介紹一個使用Python自動化辦公的方法來幫助大家解決問題,也保證不會出錯,大概幾秒鐘左右的時間就可以完成戰(zhàn)斗。

其實(shí)【🇼 🇺 🇱 🇦】自己也嘗試使用Python來解決,不過卻遇到了點(diǎn)問題,雖然Excel文件是創(chuàng)建了,但是后面的列名寫入失敗了,而且他最后還需要進(jìn)行合并Excel表格,所有這里其實(shí)是有兩個需求的。

三、解決方法

這里給出【🌑(這是月亮的背面】大佬】提供的代碼,大體思路其實(shí)是差不多的,但是實(shí)現(xiàn)的方法卻是用Python程序來實(shí)現(xiàn)的,效率就十分不一樣了。下面直接來看代碼吧!

一、代碼一

  1. # coding: utf-8 
  2. # 給每個excel中的sheet增加一列,值為excel名.xlsx 
  3. from pathlib import Path 
  4. import pandas as pd 
  5.  
  6. path = Path(r'E:\PythonCrawler\python_crawler-master\MergeExcelSheet\file\777'
  7. excel_list = [(i.stem, pd.concat(pd.read_excel(i, sheet_name=None))) for i in path.glob("*.xls*")] 
  8. data_list = [] 
  9. for name, data in excel_list: 
  10.     print(name
  11.     print(data) 
  12.     data['表名'] = name 
  13.     data_list.append(data) 
  14. result = pd.concat(data_list, ignore_index=True
  15. result.to_excel(path.joinpath('給每個excel中的sheet增加一列,值為excel名.xlsx'), index=False, encoding='utf-8'
  16. print('添加和合并完成!'

i.stem的意思是獲取該文件的名稱,不包括父節(jié)點(diǎn)和后綴,例D:/Desktop/test.txt,i.stem就是test!

二、代碼二

  1. # coding: utf-8 
  2. # 給每個excel中的sheet增加一列,值為excel名-sheet名.xlsx 
  3. from pathlib import Path 
  4. import pandas as pd 
  5.  
  6. path = Path(r'E:\PythonCrawler\python_crawler-master\MergeExcelSheet\file\777'
  7. excel_list = [(i.stem, pd.concat(pd.read_excel(i, sheet_name=None))) for i in path.glob("*.xls*")] 
  8. data_list = [] 
  9. for name, data in excel_list: 
  10.     print(name
  11.     print(data) 
  12.     data['表名'] = name 
  13.     data.reset_index(level=0, inplace=True)  # 重置level_0索引 
  14.     data_list.append(data) 
  15. result = pd.concat(data_list, ignore_index=True
  16. result['表名'] = result['表名'] + '-' + result['level_0']  # 更改列值 
  17. del result['level_0']  # 刪除多余列 
  18. result.to_excel(path.joinpath('給每個excel中的sheet增加一列,值為excel名-sheet名.xlsx'), index=False, encoding='utf-8'
  19. print('添加和合并完成!'

這個代碼和代碼一其實(shí)是差不多的,就是列名這塊稍微有些命名不同,因?yàn)槭纠倪@3個excel里的sheet名相同,就用表名做了前綴,表名-sheet名 了。

代碼運(yùn)行之后,在代碼目錄下會自動生成相應(yīng)的Excel文件,如下圖所示。

之后每個Excel表格中,也有對應(yīng)的表格名稱對應(yīng)的列名,而且還實(shí)現(xiàn)了所有表格的合并功能,如下圖所示。

如果對Excel合并知識感興趣的話,可以戳這篇文章學(xué)習(xí)下:盤點(diǎn)4種使用Python批量合并同一文件夾內(nèi)所有子文件夾下的Excel文件內(nèi)所有Sheet數(shù)據(jù),干貨滿滿噢!

四、總結(jié)

我是Python進(jìn)階者。本文基于粉絲針對Python自動化辦公的提問,給出了一個利用Python基礎(chǔ)+pandas文件處理的解決方案,完全滿足了粉絲的要求,給粉絲節(jié)約了大量的時間。

 

責(zé)任編輯:姜華 來源: Python爬蟲與數(shù)據(jù)挖掘
相關(guān)推薦

2021-08-09 13:31:25

PythonExcel代碼

2021-03-23 09:05:52

PythonExcelVlookup

2021-02-10 09:34:40

Python文件的壓縮PyCharm

2022-01-27 09:24:20

PythonExcelPython基礎(chǔ)

2021-12-11 20:20:19

Python算法線性

2022-10-19 14:30:59

2021-02-27 09:30:16

PythonExcelSheet

2021-05-10 06:48:11

Python騰訊招聘

2021-02-02 13:31:35

Pycharm系統(tǒng)技巧Python

2021-02-23 09:03:13

Python拆分ExcelCSV文件

2017-10-27 10:29:35

人臉識別UbuntuPython

2021-02-06 14:55:05

大數(shù)據(jù)pandas數(shù)據(jù)分析

2011-03-28 16:14:38

jQuery

2021-02-04 09:00:57

SQLDjango原生

2017-10-29 21:43:25

人臉識別

2022-08-04 10:39:23

Jenkins集成CD

2018-12-29 09:38:16

Python人臉檢測

2021-04-01 09:02:38

Python小說下載網(wǎng)絡(luò)爬蟲

2021-05-17 21:30:06

Python求均值中值

2009-04-22 09:17:19

LINQSQL基礎(chǔ)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號