丁勇赫优秀作者
原创内容 来源:小居数码网 时间:2024-08-07 18:04:01 阅读() 收藏:20 分享:61 爆
导读:您正在阅读的是关于【数码知识】的问题,本文由科普作家协会,生活小能手,著名生活达人等整理监督编写。本文有917个文字,大小约为4KB,预计阅读时间3分钟。
Officetouch:办公如此轻松
主要内容:Excel办公自动化
适用人群:Python初学者,办公室人员,或有志从事数据分析工作的人员
准备内容:Anaconda
今天Officetouch为大家带来关于Python办公自动化入门的知识。不知大家有没有遇到过这样的问题:需要把Excel同类项的内容进行合并(比如上图左边“工号”相同的角色合并成右边这样用逗号隔开),我们可以在Excel上安装Power Query/Power Pivot插件来解决,但是操作有点繁琐,安装一个不常用的插件不说,还不太好理解,大家可以看下这种方式:
(如果上传后数据格式不是文本,需要先改一下数据类型)
点击确定后,可以看到发票一列显示Error,因为文本格式是无法求和的。改公式,将List.Sum([Invoice])改为Text.Combine([Invoice], "/"),然后按回车。
原始数据如下,A列包含重复的姓名,B列是对应的不同数量或者说型号。需要将A列数据去除重复值,并且将B列的同一个人的数量合并在一个单元格里并用逗号分开。
Sub yy() Dim Arr, i&, d, Myr& Set d = CreateObject("Scripting.Dictionary") [c2:d65535].Clear Myr = [a65536].End(xlUp).Row Arr = Range("a1:c" & Myr) For i = 2 To UBound(Arr) If Not d.exists(Arr(i, 1)) Then d(Arr(i, 1)) = Arr(i, 2) Else d(Arr(i, 1)) = d(Arr(i, 1)) & "," & Arr(i, 2) End If Next k = d.keys t = d.items [c2].Resize(d.Count, 1) = Application.Transpose(k) [d2].Resize(d.Count, 1) = Application.Transpose(t)End Su
Officetouch今天为大家分享一个最简易的方法,从这个合并同类项内容开始,我们逐步学习办公自动化。原表(person_role.xlsx)如下:
步骤1、打开Anaconda-Spyder,粘贴如下代码,运行后打开“test.xlsx”就可以看到效果了:
import pandas as pddf = pd.read_excel("person_role.xlsx")df["角色"]=df["角色"].astype(str) #这一步在pycharm中是必要的df1=df.groupby(["工号","姓名"]).apply(lambda x:[",".join(x["角色"])])col1 = ["角色"]df2 = pd.DataFrame(df1,columns=col1)df2.to_excel("test.xlsx",sheet_name="sheet2")
是不是很神奇?1个步骤就搞定了,用Python办公自动化确实提高了效率!
好了,今天大家学会如何用Python实现Excel合并同类项内容了吗?是不是激起了大家学习Python办公自动化的兴趣和斗志,Officetouch相信只要大家抱着解决工作和生活问题的决心,不久后我们就能成为职场高手。
上面就是小居数码小编今天给大家介绍的关于(合并excel多个工作表python)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。
94%的朋友还想知道的:
(593)个朋友认为回复得到帮助。
部分文章信息来源于以及网友投稿,转载请说明出处。
本文标题:pythonexcel文件合并(合并excel多个工作表python):http://sjzlt.cn/shuma/153436.html