使用python给Excel里的数据随机分组
昨天一个朋友询问我如何为Excel里的数据进行随机分组,大概的内容是:他现在有一个Excel数据表,然后里面有许多数据(多达数万条),现在他需要将这些数据随机分配给四个部门来处理,他可以确定给某个部门分配的数量。(虽然可以按照这个方式手动地处理,但觉得没有随机性,总感觉不太好,于是找到我来处理)。
(我个人比较喜好函数和类的编写方式,易读性强一些)
import pandas as pd
import numpy as np
import os
'''
思路是:1、先按照要求确定需要给某个负责的对象(此处为某部(一~四部)的个数
2、生成4个对象所需要的数(此处我使用的是np.random的方式,显然也可以使用字符串复制的方式来实现)
3、然后将四个数(1、2、3、4)的个数组合成numpy数组,并打乱数组--打乱是为了得到一种随机分配的效果
4、将四个数替换为所对应的对象(使用字典的方式进行替换,字典替换的方式在python中很常见)
5、将numpy数组转换为pandas的series数据类型,并给出列名
6、拼接原数据和随机数的列
7、根据需要在按照随机数的列进行拆分
'''
class Random_Allocation():
def __init__(self,filepath):
self.filepath = filepath
global savepath_with_random #使用global进行全局化,让变量可以在每一个函数下面相互调用,全局化的好处在于在实例化的时候
global savefile_with_allocation #只需要传递一个参数,其他参数都可以通过函数内定义实现
savepath_with_random = os.path.join(self.filepath[:-6],'随机分配结果.xlsx') #拼接处一个存储用的Excel地址,[