Python代码按class列分类存表文件移动代码三大运营商招标信息数据整理
Posted 卖山楂啦prss
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python代码按class列分类存表文件移动代码三大运营商招标信息数据整理相关的知识,希望对你有一定的参考价值。
按数据class列,每一个class单独存为一个表
不同学校信息
#第一步:调用pandas包
import pandas as pd
#第二步:读取数据
data = pd.read_excel('总成绩.xls')#读入数据文件
class_list = list(data['学校名称'].drop_duplicates())#获取数据class列,去重并放入列表
# 第三步:按照类别分sheet存放数据
for i in class_list:
df = data[data['学校名称']==i]
df.to_excel(r"C:\\Users\\ABC\\Desktop\\体测抽查\\2018所有表格\\\\"+i+'.xlsx')
按不同类别,分步移动文件
按照学校类型,把表格移动到对应文件夹
import pandas as pd
import numpy as np
import os, sys
import openpyxl
import shutil, os
# 打开文件
path = r"C:\\Users\\ABC\\Desktop\\体测抽查\\2018所有表格"
dirs = os.listdir(path)
list_2020 = []
dw = pd.read_excel(r'C:\\Users\\ABC\\Desktop\\12.xlsx',sheet_name='2018')
# 输出所有文件和文件夹
for file in dirs:
file1=file.replace('.xlsx','')
try:
if '城市' in dw[dw['学校名称']==file1]['类型'].tolist()[0]:
shutil.move(r'C:\\Users\\ABC\\Desktop\\体测抽查\\2018所有表格\\\\'+file, r'C:\\Users\\ABC\\Desktop\\体测抽查\\2018城市\\\\'+file)
else:
shutil.move(r'C:\\Users\\ABC\\Desktop\\体测抽查\\2018所有表格\\\\'+file, r'C:\\Users\\ABC\\Desktop\\体测抽查\\2018农村\\\\'+file)
except Exception:
pass
三大运营商招标信息数据整理
import time
import requests
from lxml import etree
from multiprocessing.dummy import Pool
from requests.exceptions import RequestException
import openpyxl
from fake_useragent import UserAgent
from urllib.parse import urlencode
import pandas as pd
import os
os.chdir(r'C:\\Users\\\\ABC\\Desktop')
import datetime
date = datetime.datetime.now().strftime('%Y-%m-%d')
base_url = 'https://caigou.chinatelecom.com.cn/MSS-PORTAL/announcementjoin/list.do?provinceJT=NJT'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/89.0.4389.90 Safari/537.36'
,'X-Requested-With': 'XMLHttpRequest'
}
formdata ={
'provinceJT': 'NJT',
'provinceCode': 12,
'provinceNames': '重庆',
'paging.start': 1,
'paging.pageSize': 10,
'pageNum': 10,
'goPageNum': 1,
'paging.start': 1,
'paging.pageSize': 10,
'pageNum': 10,
'goPageNum': 1
}
base_url = base_url + urlencode(formdata)
tb = pd.read_html(base_url,header =0)[3]
tb['时间'] = tb['创建时间日期'].apply(lambda x :x.split(' ')[0])
new_xm = tb[tb['时间']==max(tb['时间'])]
# new_xm.to_csv(max(tb['时间'])+'.txt')
# new_xm.to_excel('12.xlsx')
#-------------------------------------------------------------------------------
yd = pd.read_excel('中国移动采购与招标网-采集的数据-后羿采集器.xlsx',header =2)
yd['时间'] = yd['时间'].apply(lambda x :time.strftime("%Y-%m-%d", time.strptime(x, "%Y-%m-%d")))
new_yd = yd[yd['时间']==max(yd['时间'])]
new_yd.reset_index(inplace=True,drop=True)
# ---------------------------------------------------------------
lt = pd.read_excel('联通的数据-后羿采集器.xlsx',header =0)
lt.columns = ['公告','时间','省份']
new_lt = lt[lt['时间']==max(lt['时间'])]
new_lt.reset_index(inplace=True,drop=True)
# 写入excel
import xlwt
f = xlwt.Workbook() #创建工作薄
sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #创建sheet
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = 5
style = xlwt.XFStyle()
style.pattern = pattern
al = xlwt.Alignment()
al.horz = 0x02 # 设置水平居中
al.vert = 0x01 # 设置垂直居中
style.alignment = al
# 获取字典的键
styleBlueBkg = xlwt.easyxf('pattern: pattern solid, fore_colour yellow;') # 红色
for s in range(len(new_yd.iloc[:,0])):
sheet1.write(0,0,'移动',styleBlueBkg) #循环写入 竖着写
sheet1.write(0,1,'') #循环写入 竖着写
sheet1.write(0,2,'') #循环写入 竖着写
sheet1.write(0,3,'') #循环写入 竖着写
sheet1.write(1,0,'采购需求单位') #循环写入 竖着写
sheet1.write(1,1,'公告类型') #循环写入 竖着写
sheet1.write(1,2,'标题') #循环写入 竖着写
sheet1.write(1,3,'时间') #循环写入 竖着写
sheet1.write(s+2,0,new_yd.iloc[:,0][s]) #循环写入 竖着写
sheet1.write(s+2,1,new_yd.iloc[:,1][s]) #循环写入 竖着写
sheet1.write(s+2,2,new_yd.iloc[:,2][s]) #循环写入 竖着写
sheet1.write(s+2,3,new_yd.iloc[:,3][s]) #循环写入 竖着写
for s in range(len(new_xm.iloc[:,0])):
sheet1.write(len(new_yd.iloc[:,0])+3,0,'电信',styleBlueBkg) #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+3,1,'') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+3,2,'') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+3,3,'') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+3,4,'') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+3,5,'') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+3,6,'') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+3,7,'') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+3,8,'') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4,0,'省份') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4,1,'是否终止') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4,2,'公告名称') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4,3,'公告编码') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4,4,'公告类型') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4,5,'创建时间') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4,6,'开始时间') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4,7,'截止时间') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4,8,'时间') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4+s+1,0,new_xm.iloc[:,0][s]) #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4+s+1,1,new_xm.iloc[:,1][s]) #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4+s+1,2,new_xm.iloc[:,2][s]) #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4+s+1,3,new_xm.iloc[:,3][s]) #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4+s+1,4,new_xm.iloc[:,4][s]) #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4+s+1,5,new_xm.iloc[:,5][s]) #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4+s+1,6,new_xm.iloc[:,6][s]) #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4+s+1,7,new_xm.iloc[:,7][s]) #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4+s+1,8,new_xm.iloc[:,8][s]) #循环写入 竖着写
for s in range(len(new_lt.iloc[:,0])):
sheet1.write(len(new_yd.iloc[:,0])+3+len(new_xm.iloc[:,0])+1+2,0,'联通',styleBlueBkg) #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+3+len(new_xm.iloc[:,0])+1+2,1,'') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+3+len(new_xm.iloc[:,0])+1+2,2,'') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4+len(new_xm.iloc[:,0])+1+2,0,'公告') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4+len(new_xm.iloc[:,0])+1+2,1,'时间') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4+len(new_xm.iloc[:,0])+1+2,2,'省份') #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4+len(new_xm.iloc[:,0])+1+2+s+1,0,new_lt.iloc[:,0][s]) #循环写入 竖着写
sheet1.write(len(new_yd.iloc[:,0])+4+len(new_xm.iloc[:,0])+1+2+s+1,1,new_lt.iloc[:,1以上是关于Python代码按class列分类存表文件移动代码三大运营商招标信息数据整理的主要内容,如果未能解决你的问题,请参考以下文章