当前位置: 首页 > news >正文

合肥网站设自己电脑上做网站怎么使用源码

合肥网站设,自己电脑上做网站怎么使用源码,做写手一般上什么网站好,丽水网站开发公司#x1f9e1;1. 前言#x1f9e1; 跟队友花了三天模拟2020C题#xff0c;现在整理一下一些数据处理的代码#xff0c;以及在模拟中没有解决的问题。方便以后回溯笔记。 #x1f9e1;2. 数据处理#x1f9e1; 2.1 导入数据#xff0c;并做相关预处理 import pandas a…1. 前言 跟队友花了三天模拟2020C题现在整理一下一些数据处理的代码以及在模拟中没有解决的问题。方便以后回溯笔记。 2. 数据处理 2.1 导入数据并做相关预处理 import pandas as pd import numpy as np import re# import data df1pd.read_excel(oridata/附件1123家有信贷记录企业的相关数据.xlsx,sheet_name企业信息) df2pd.read_excel(oridata/附件1123家有信贷记录企业的相关数据.xlsx,sheet_name进项发票信息) df3pd.read_excel(oridata/附件1123家有信贷记录企业的相关数据.xlsx,sheet_name销项发票信息)# 删除df2、df3重复行 duplicate_rows df2.duplicated() # 检测重复行 从前向后查后一个重复则true print(duplicate_rows.sum()) df2 df2[~duplicate_rows] duplicate_rows df3.duplicated() # 检测重复行 从前向后查后一个重复则true print(duplicate_rows.sum()) df3 df3[~duplicate_rows]# 处理企业代号将 E1 数字1 使用正则表达式提取数字部分并转换为整数 df1[企业代号] df1[企业代号].apply(lambda x: int(re.findall(r\d, x)[0])) df2[企业代号] df2[企业代号].apply(lambda x: int(re.findall(r\d, x)[0])) df3[企业代号] df3[企业代号].apply(lambda x: int(re.findall(r\d, x)[0])) # 处理时间数据, 将 2017-1-1 年份属性2017 、 月份属性1 df2[开票日期] pd.to_datetime(df2[开票日期]) df2[年份] df2[开票日期].dt.year df2[月份] df2[开票日期].dt.month df3[开票日期] pd.to_datetime(df3[开票日期]) df3[年份] df3[开票日期].dt.year df3[月份] df3[开票日期].dt.month# 获取所有公司的列表 1,2,3,.....123 all_companies df1[企业代号].unique() df32.2 信誉等级和是否违约 转成英文 信誉等级和是否违约 中文转英文data0df1.copy() toClassNum_map1{A: 3, B: 2, C: 1,D:0} data0[信誉评级] data0[信誉评级].map(toClassNum_map1) toClassNum_map2{是: 0, 否: 1} data0[是否违约] data0[是否违约].map(toClassNum_map2)data0data0[[企业代号,信誉评级,是否违约]] data02.3 利用groupby统计各种指标 基本原理 2.3.1 统计三年总买入、卖出的价税合计总金额 和 各年买入、卖出的价税合计总金额 data1df2.copy() data2df3.copy()# 统计三年总买入、卖出的价税合计总金额 data1_totalmoney data1.groupby(企业代号)[价税合计].sum().reset_index(name买入-价税总金额) data2_totalmoney data2.groupby(企业代号)[价税合计].sum().reset_index(name卖出-价税总金额)data_totoalmoney_mergepd.merge(data1_totalmoney,data2_totalmoney,on企业代号) data_totoalmoney_merge# 各年买入、卖出的价税合计总金额 data1_yearmoney data1.groupby([企业代号,年份]).agg({价税合计:sum}) data2_yearmoney data2.groupby([企业代号,年份]).agg({价税合计:sum}) print(data1_yearmoney) # 查看结果只有356行 ! 123*3说明有些企业少了某些年的数据计数为0而grougby函数不会展示计数为0的分组因此需要填充缺失年 mulidx[] # 生成二维索引 (企业代号、年份) for i in range(1,1231): # 1-123for j in range(2017,20191): # 2017、2018、2019mulidx.append((i,j)) mulidxpd.MultiIndex.from_tuples(mulidx,names[企业代号, 年份]) # 转为二维行索引命名为(企业代号, 年份) data1_yearmoneydata1_yearmoney.reindex(mulidx, fill_value0) data2_yearmoneydata2_yearmoney.reindex(mulidx, fill_value0)data_yearmoney_mergepd.merge(data1_yearmoney,data2_yearmoney,left_indexTrue, right_indexTrue,suffixes(_买入, _卖出)) data_yearmoney_merge # 2.3.2 统计三年总买入、卖出的总发票数和违约发票数 违约率data3df2.copy() data4df3.copy()# 统计三年总买入、卖出的总发票数和违约发票数 # 总发票个数 data3_totalPaydata3.groupby(企业代号).agg({发票号码:count}) data3_totalPaydata3_totalPay.reindex(all_companies ,fill_value0) data3_totalPaydata3_totalPay.rename(columns{发票号码:买入-总发票次数})data4_totalPaydata4.groupby(企业代号).agg({发票号码:count}) data4_totalPaydata4_totalPay.reindex(all_companies ,fill_value0) data4_totalPaydata4_totalPay.rename(columns{发票号码:卖出-总发票次数})data_totalPay_mergepd.merge(data3_totalPay,data4_totalPay,on企业代号) data_totalPay_merge# 违约发票个数 data3data3[(data3[价税合计] 0 ) | (data3[发票状态]作废状态)] data3_totalBadPaydata3.groupby(企业代号).agg({发票号码:count}) data3_totalBadPaydata3_totalBadPay.reindex(all_companies ,fill_value0) data3_totalBadPaydata3_totalBadPay.rename(columns{发票号码:买入-总违约发票次数})data4data4[(data4[价税合计] 0 ) | (data4[发票状态]作废状态)] data4_totalBadPaydata4.groupby(企业代号).agg({发票号码:count}) data4_totalBadPaydata4_totalBadPay.reindex(all_companies ,fill_value0) data4_totalBadPaydata4_totalBadPay.rename(columns{发票号码:卖出-总违约发票次数})data_totalBadPay_mergepd.merge(data3_totalBadPay,data4_totalBadPay,on企业代号) data_totalBadPay_merge2.3.3 统计各公司营业时间月数 营业时间data5data2.copy() data5[年-月] data5[开票日期].dt.strftime(%Y-%m)# 使用 drop_duplicates 方法按照 企业代号 年-月 进行分组并保留每个组别的第一条数据 data5 data5.drop_duplicates(subset[企业代号,年-月], keepfirst) data5 data5.groupby([企业代号])[年-月].size().reset_index(name卖出-营业时间) data52.4 总结 2.4.1 agg{sum}和sum区别 统计个数时data2.groupby(‘企业代号’).agg({‘价税合计’:‘sum’}) 和 **data2.groupby(‘企业代号’)[‘价税合计’].sum().reset_index(name‘卖出-价税总金额’)**作用是否一样 看图差别在于前者将企业代号从1开始作为行索引后者重新生成一个从0开始的行索引。 前者的好处是当需要填充缺失值时可以用reindex根据企业代号填充后者的好处是方便pd.concat合并多个表 2.4.2 pd.concat 和 pd.merge的区别 pd.concat 根据轴相连 一次可以连接多个表 joinouter、inner其中inner上下拼接的时候保留了共有的列信息 左右拼接的时候保留了共有的行信息pd.merge 根据共有属性相连 一次只能连接两张表 join: outer、inner、left、right on共同属性列 2.4.3 groupby其他有用的参数 unstack可以将分组的行索引变成列索引 testdata1.groupby(企业代号)[发票状态].value_counts().unstack() test2. 当agg对多组进行多个操作后会存在两维列索引以下展示如何转为一维列索引 testdata1.groupby(企业代号).agg({价税合计:[mean,sum],发票状态:size}) test.columns [_.join(col).strip() for col in test.columns.values] # 合并多级列 test3. get_group筛选出满足特定条件的组 testdata1.groupby(发票状态).get_group(作废发票).reset_index() # 筛选出满足条件的 test2.4.4 利用globals简化代码 如下已经定义了10个变量想要输出它们的长度 print(df1.count()) print(df2.count()) print(df3.count()) print(df4.count()) print(df5.count()) print(df6.count()) print(df7.count()) print(df8.count()) print(df9.count()) print(df10.count())# gloabs()简化 for i in range(10):print(globals()[fdf{i1}].count())3. 画图 配色方案红色–#d7003a绿色–green混淆矩阵的cmap–Greens 3.1 营业时间直方图 主要设置bin 调整柱子数目 light_index 调整哪个柱子为突出色xytext 调整位置 import matplotlib.pyplot as plt import numpy as np import pandas as pd plt.rcParams[font.sans-serif] [SimHei] # 为了支持中文字体 plt.rcParams[axes.unicode_minus] False # 上述字库没负号因此负号不进行字体变换data1pd.read_excel(out/t1_123_指标.xlsx) data1data1[卖出-营业时间]fig, ax plt.subplots() bins 10 #直方图的柱子数目 colors [g] n, bins, patches ax.hist(data1, binsbins, colorcolors[0], alpha0.7, labelGroup, edgecolorblack)# 设置最高利润的柱子颜色为红色 light_index9 patches[light_index].set_facecolor(#d7003a) # 标注最高利润的柱子 ax.annotate(Max, xy(bins[light_index], n[light_index]), xycoordsdata,xytext(12, 5), textcoordsoffset points, colorred, weightbold)ax.legend() ax.set_xlabel(营业时间(月), fontsize12) ax.set_ylabel(频数, fontsize12) ax.set_title(各企业营业时间直方图, fontsize14) ax.tick_params(axisboth, whichmajor, labelsize10) ax.grid(True, linestyle--, alpha0.7) # ax.set_facecolor(#f0f0f0) ax.spines[top].set_color(none) ax.spines[right].set_color(none) plt.tight_layout() # 自动调整子图或图形的布局使其适应绘图区域避免重叠和裁剪plt.savefig(img/营业时间.png,dpi300) # 在plt.show()之前调用 plt.show()3.2 各企业买入、卖出总发票次数和作废发票次数堆叠图前10个企业 堆叠图 主要设置ax.text第二个参数 根据实际数值设置文本高度import matplotlib.pyplot as plt import numpy as np import pandas as pd plt.rcParams[font.sans-serif] [SimHei] # 为了支持中文字体 plt.rcParams[axes.unicode_minus] False # 上述字库没负号因此负号不进行字体变换datapd.read_excel(out/t1_123_指标.xlsx) data2data[买入-作废发票数].head(10) data1data[买入-总发票次数].head(10) x_labelsdata[企业代号].head(10)fig, ax plt.subplots() # 绘制第一组数据的柱状图 bar1ax.bar(x_labels, data1, label买入-总发票次数,colorg)# 绘制第二组数据的柱状图底部从第一组数据开始 bar2ax.bar(x_labels, data2, bottomdata1, label买入-作废发票数,color#d7003a)# 在每个柱子的顶部添加文本 for rect1, rect2 in zip(bar1, bar2):height1 rect1.get_height()height2 rect2.get_height()ax.text(rect2.get_x() rect2.get_width() / 2, height1height21000,f{height2}, hacenter, vatop)ax.legend() ax.set_xlabel(企业代号, fontsize12) ax.set_ylabel(发票数, fontsize12) ax.set_title(各企业总发票次数和作废发票次数堆叠图, fontsize14) ax.tick_params(axisboth, whichmajor, labelsize10) ax.grid(True, linestyle--, alpha0.7) # ax.set_facecolor(#f0f0f0) ax.spines[top].set_color(none) ax.spines[right].set_color(none) plt.tight_layout() # 自动调整子图或图形的布局使其适应绘图区域避免重叠和裁剪 plt.xticks(range(1,11), x_labels) plt.savefig(img/总-作废1.png,dpi300) plt.show()3.3 买入卖出范围频数图 范围频数图 主要设置bins1、bins2 设置范围data 根据print结果手动输入变量第一列代表bins1、第二列代表bins2width 设置柱形宽度ax.bar 第二个参数设置与xlabels对齐import matplotlib.pyplot as plt import numpy as np import pandas as pd plt.rcParams[font.sans-serif] [SimHei] # 为了支持中文字体 plt.rcParams[axes.unicode_minus] False # 上述字库没负号因此负号不进行字体变换datapd.read_excel(out/t1_123_指标.xlsx) # print(data.describe())data1data[买入-价税总金额] data2data[卖出-价税总金额]# 自定义范围 bins1 [0, 1e5, 1e6, 1e7, 1e8, 1e10] # 范围为[0, 20), [20, 40), [40, 60) bins2 [0, 1e5, 1e6, 1e7, 1e8, 1e10] # 使用cut函数对数据进行划分 categories1 pd.cut(data1, binsbins1) categories2 pd.cut(data2, binsbins1) # 使用value_counts函数统计各范围的数据个数 count1 categories1.value_counts() count2 categories2.value_counts() print(count1) print(count2)# 生成示例数据 groups [0-1e5, 1e5-1e6, 1e6-1e7, 1e7-1e8, 1e8-1e10] indicators [买入-价税总金额, 卖出-价税总金额] data np.array([[28,11],[31,24],[30,34],[31,45],[3,9]] )fig, ax plt.subplots() width 0.2 colors [g, #d7003a]for i in range(len(groups)):x (np.arange(len(indicators)) - len(indicators)//2) * width i # 距离print(x)for j in range(len(indicators)):ax.bar(x[j]0.1, data[i][j], width, colorcolors[j], labelindicators[j] if i 0 else )ax.legend(locupper left) ax.set_xlabel(金额范围, fontsize12) ax.set_ylabel(数目, fontsize12) ax.set_title(买入卖出价税总金额, fontsize14) ax.set_xticks(np.arange(len(groups))) ax.set_xticklabels(groups) plt.savefig(img/买入卖出价税总金额.jpg,dpi300) plt.show()暂时写这么多吧 ~ 希望以后遇到groupby等处理得心应手 ~
http://www.w-s-a.com/news/122984/

相关文章:

  • 青岛模板网站建设价格网络品牌网站建设
  • 网站建设的几大要素网站的做网站的公司
  • 怎么登陆自己的公司网站垂直电商网站建设
  • 温州微网站制作哪里有许昌网站建设哪家最好
  • 中国中小企业网站官网网页制作工具按其制作方式分 可以分为
  • 做资源下载网站违法吗河南企业做网站
  • 网站开发总体功能设计网站建设 北京昌平
  • 辽宁省高等级公路建设局网站书画院网站建设方案
  • 本地生活网站 源码重庆本地网站有哪些
  • 企业网站域名服务器国外html响应式网站
  • 东莞网站建设策划企业网站推广策划方法
  • 网站的图片怎么制作WordPress交互式网站
  • pc网站增加手机站什么专业学网页设计制作
  • 婚庆公司网站模板wordpress用什么框架
  • 高校网站建设的时效性长沙市网站建设
  • 合肥网站建设市场四川建设网官网住房和城乡厅官网官方
  • 天行健君子以自强不息网站建设江西网站做的好的企业文化
  • 建网站内容谷歌搜索引擎优化
  • 网站建设与管理案例教程第三版答案网站建设策划书范文六篇精选
  • 建设工程项目在哪个网站查询实时网站推广的最终目的是
  • 个人网站可以做淘客网站设置的参数
  • 自适应网站制作公司做室内设计通常上的网站
  • 网站建设项目采购公告建设网站公司建网页
  • 自己做网站怎么推广网站建设应该考虑哪些方面
  • 我做的网站手机上不了wordpress插件整站搬家
  • 河南省和建设厅网站首页西安找建网站公司
  • 网页设计基础代码网站进出成都最新通知
  • 如何创建网站乐清网络科技有限公司
  • 沈阳市网站制作艺术字体logo设计生成器
  • 网站设计常用软件都有哪些中国建设银行官方招聘网站