项目场景:
python数据处理,excel, pandas
问题描述
例如:当我们遇到上述表格,我们想把表格按照某一列来拆分为多张表,数据量少的时候可以简单的CTRL+C,但是当数据量很大的时候我们可以怎么操作呢?不妨用python来解决一下。
我们这里是按学院来拆分,将不同学院的同学拆分在不同的表中
; 代码展示:
import pandas as pd
data = pd.read_excel(r"C:\Users\Desktop\xs.xlsx")
rows = data.shape[0]
department_list = []
for i in range(rows):
temp = data["学院"][i]
if temp not in department_list:
department_list.append(temp)
n = len(department_list)
for i in range(1,5):
locals()['df'+str(i)] = pd.DataFrame()
df_list = [df1,df2,df3,df4,df5]
for department in range(n):
for i in range (0, rows):
if data["学院"][i] == department_list[department]:
df_list[department] = pd.concat([df_list[department], data.iloc[[i],:]], axis = 0, ignore_index = True)
writer = pd.ExcelWriter(r'C:\Users\Desktop\各学院学生.xlsx')
for i in range(n):
df_list[i].to_excel(writer, sheet_name = str(department_list[i]), index=False)
writer.save()
动态生成变量:
用Python循环创建多个变量, 如创建 a1= 、a2= 、a3= 、a4= 、a5= 或 self.a1= 、self.a2= 、 self.a3=
一. 可以通过python的内置函数locals 来完成
locals是python的内置函数,他可以以字典的方式去访问局部和全局变量。
python里面用名字空间记录着变量,就像javascript的window一样,他记录着各种全局变量。
每个模块,每个函数都有自己的名字空间,记录着变量,常量,类的命名和值。
1 createVar = locals()
2 listTemp = range(1,10)
3 for i,s in enumerate(listTemp):
4 createVar['a'+i] = s
5 print a1,a2,a3
二. 对于class,推荐使用setattr()方法
1 class test(object) :
2 def __init__(self):
3 dic={'a':'aa','b':'bb'}
4 for i in dic.keys() :
5 setattr(self,i,dic[i])
6 print(self.a)
7 print(self.b)
8 t=test()
结果展示:
如果想进一步把sheet拆为不同的excel表,可以用宏来完成
用常规的一步步操作大家都知道吧,但工作表一多,工作量是很大的,也就变成不现实了。用宏来解决,将每个工作表导出到这个文件的同名文件夹下。
右键任意一个sheet,点击代码,将下面代码复制到代码框,运行就可以实现啦。
Sub SaveAllSheet()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim TPath As String, XSheet As Worksheet
TPath = ActiveWorkbook.Path
For Each XSheet In ActiveWorkbook.Sheets
XSheet.Copy
ActiveWorkbook.SaveAs Filename:=TPath & “” & ActiveSheet.Name & “.xls”
ActiveWindow.Close
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End SubOriginal: https://blog.csdn.net/qq_51205385/article/details/123842661
Author: Gamers fei
Title: 如何用python将一张excel表按某一列分类为多张表
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/639137/
转载文章受原作者版权保护。转载请注明原作者出处!