标签:main 文件 实现 bre 分块 and 经纬度 rar app
首先:使用ultra edit 打开获取txt行数
import time, threading import pandas as pd from itertools import islice ‘‘‘ Reader类,继承threading.Thread @__init__方法初始化 @run方法实现了读文件的操作 ‘‘‘ class Reader(threading.Thread): def __init__(self, file_name, n, nlong): super(Reader, self).__init__() self.file_name = file_name self.n = n self.nlong = nlong self.data = pd.DataFrame(columns=[ ‘发展渠道编码(全渠道)‘,‘发展渠道名称‘,‘客户id(脱敏后的移动用户识别码)‘,‘年龄‘,‘性别‘,‘产品名称(201907)‘,‘档位(201907)‘,‘出账收入(201907)‘,‘产品名称(201908)‘,‘档位(201908)‘,‘出账收入(201908)‘,‘产品名称(201909)‘,‘档位(201909)‘,‘出账收入(201909)‘,‘产品名称(201910)‘,‘档位(201910)‘,‘出账收入(201910)‘,‘产品名称(201911)‘,‘档位(201911)‘,‘出账收入(201911)‘,‘产品名称(201912)‘,‘档位(201912)‘,‘出账收入(201912)‘,‘入网时间‘,‘离网时间 取唯一标识‘,‘2019年7月‘,‘工作地的经纬度网格‘,‘2019年7月居住地的经纬度网格‘,‘2019年8月工作地的经纬度网格‘,‘2019年8月居住地的经纬度网格‘,‘2019年9月工作地的经纬度网格‘,‘2019年9月居住地的经纬度网格‘,‘2019年10月工作地的经纬度网格‘,‘2019年10月居住地的经纬度网格‘,‘2019年11月工作地的经纬度网格‘,‘2019年11月居住地的经纬度网格‘,‘2019年12月工作地的经纬度网格‘,‘2019年12月居住地的经纬度网格‘,‘2019年11月每个周六10:00-15:00出现频次最多位置的经纬度网格‘,‘2019年11月每个周日10:00-15:00出现频次最多位置的经纬度网格‘,‘2019年12月每个周六10:00-15:00出现频次最多位置的经纬度网格‘,‘2019年12月每个周日10:00-15:00出现频次最多位置的经纬度网格‘]) def run(self): for line in islice(open(self.file_name,‘r‘,encoding=‘utf-8‘),self.n,None): print(self.n) if self.n <self.nlong: self.data.loc[self.n] = line.split(‘|‘) else: break self.n = self.n+1 return self.data if __name__ == ‘__main__‘: file_name = r‘E:\work\渠道规划\2020年联通营业厅规划\甲方数据\移网话单数据.rar,北京渔网-面.rar,字段名称.xlsx\移网话单数据\YYT_ZHB1.txt‘ #线程数量 thread_num = 500 #起始时间 start_time = time.clock() #txt按行切分n_start 起始行,n_end 终止行,n_size 切分行数 n_size= 33101 n_start = [x*n_size for x in range(thread_num)] n_end = [(x+1)*n_size for x in range(thread_num)] t = [] #生成线程 for i in range(thread_num): t.append(Reader(file_name, n_start[i],n_end[i])) #开启线程 for i in range(thread_num): t[i].start() for i in range(thread_num): t[i].join() #结束时间 end_time = time.clock() print ("Cost time is %f" % (end_time - start_time)) data = pd.DataFrame(columns=[ ‘发展渠道编码(全渠道)‘,‘发展渠道名称‘,‘客户id(脱敏后的移动用户识别码)‘,‘年龄‘,‘性别‘,‘产品名称(201907)‘,‘档位(201907)‘,‘出账收入(201907)‘,‘产品名称(201908)‘,‘档位(201908)‘,‘出账收入(201908)‘,‘产品名称(201909)‘,‘档位(201909)‘,‘出账收入(201909)‘,‘产品名称(201910)‘,‘档位(201910)‘,‘出账收入(201910)‘,‘产品名称(201911)‘,‘档位(201911)‘,‘出账收入(201911)‘,‘产品名称(201912)‘,‘档位(201912)‘,‘出账收入(201912)‘,‘入网时间‘,‘离网时间 取唯一标识‘,‘2019年7月‘,‘工作地的经纬度网格‘,‘2019年7月居住地的经纬度网格‘,‘2019年8月工作地的经纬度网格‘,‘2019年8月居住地的经纬度网格‘,‘2019年9月工作地的经纬度网格‘,‘2019年9月居住地的经纬度网格‘,‘2019年10月工作地的经纬度网格‘,‘2019年10月居住地的经纬度网格‘,‘2019年11月工作地的经纬度网格‘,‘2019年11月居住地的经纬度网格‘,‘2019年12月工作地的经纬度网格‘,‘2019年12月居住地的经纬度网格‘,‘2019年11月每个周六10:00-15:00出现频次最多位置的经纬度网格‘,‘2019年11月每个周日10:00-15:00出现频次最多位置的经纬度网格‘,‘2019年12月每个周六10:00-15:00出现频次最多位置的经纬度网格‘,‘2019年12月每个周日10:00-15:00出现频次最多位置的经纬度网格‘]) for i in t: data = data.append(i.data)
标签:main 文件 实现 bre 分块 and 经纬度 rar app
原文地址:https://www.cnblogs.com/licbin/p/13329301.html