N175_标记异常值_自动汇聚某单位的住房公积金 有补发有增减 如何批量找出来

本文主要是介绍N175_标记异常值_自动汇聚某单位的住房公积金 有补发有增减 如何批量找出来,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']    #定义使其正常显示中文字体黑体
plt.rcParams['axes.unicode_minus'] = False      #用来正常显示表示负号 
data = pd.read_excel(r'.\N175_标记异常值_数据源.xlsx')
import seaborn as sns
# 使用seaborn获取颜色
cm = sns.light_palette("green", as_cmap=True)
# 色阶实现
data.head(100).style.background_gradient(cmap=cm,subset=["发生额"])
# data
 laiyuan日期交易流水号单位代码公积金账号交易号客户编号客户姓名发生额余额摘要代码摘要凭证种类凭证号
0./数据源/2012\201208.xls201282012-08-01 00:00:00流水号0000001326727234556缴存210102198901101814#0姓名001934039720.4100001072.000000单位补缴201208nannan
1./数据源/2012\201208.xls201282012-08-01 00:00:00流水号0000002326727234557缴存43282819810118001X#0姓名00299047718.6100001072.000000单位补缴201208nannan
2./数据源/2012\201208.xls201282012-08-01 00:00:00流水号0000003326727234558缴存432801198108011031#0姓名003110642583.6600001072.000000单位补缴201208nannan
3./数据源/2012\201208.xls201282012-08-01 00:00:00流水号0000004326727234559缴存432801198710011099#0姓名00474832592.6500001072.000000单位补缴201208nannan
4./数据源/2012\201208.xls201282012-08-01 00:00:00流水号0000005326727234560

limit_output extension: Maximum message size of 10000 exceeded with 132577 characters

df = data[["laiyuan","日期","客户姓名","发生额"]]
df.head(100).style.background_gradient(cmap=cm,subset=["发生额"])  #主要是靠这些列
 laiyuan日期客户姓名发生额
0./数据源/2012\201208.xls2012-08-01 00:00:00姓名0019340
1./数据源/2012\201208.xls2012-08-01 00:00:00姓名002990
2./数据源/2012\201208.xls2012-08-01 00:00:00姓名0031106
3./数据源/2012\201208.xls2012-08-01 00:00:00姓名004748
4./数据源/2012\201208.xls2012-08-01 00:00:00姓名0051070
5./数据源/2012\201208.xls2012-08-01 00:00:00姓名0061196
6./数据源/2012\201208.xls2012-08-01 00:00:00姓名007826
7./数据源/2012\201208.xls2012-08-01 00:00:00姓名008854
8./数据源/2012\201208.xls2012-08-01 00:00:00姓名009832
9./数据源/2012\201208.xls2012-08-01 00:00:00姓名0101060
10./数据源/2012\201208.xls2012-08-01 00:00:00姓名011798
11./数据源/2012\201208.xls2012-08-01 00:00:00姓名012808
12./数据源/2012\201208.xls2012-08-01 00:00:00姓名013840
13./数据源/2012\201208.xls2012-08-01 00:00:00姓名014790
14./数据源/2012\201208.xls2012-08-01 00:00:00姓名015760
15./数据源/2012\201208.xls2012-08-01 00:00:00姓名016940
16./数据源/2012\201208.xls2012-08-01 00:00:00

limit_output extension: Maximum message size of 10000 exceeded with 43779 characters

# 透视表 交叉统计
tongji01=pd.pivot_table(data, index=['laiyuan','日期'], columns='客户姓名', values='发生额',margins=False, aggfunc=[np.sum])
# 最后,要扁平化MultiIndex列,我们可以只连接元组中的值:
tongji01.columns = ['_'.join(col).replace("sum_","") for col in tongji01.columns.values]
tongji01 = tongji01.reset_index()
tongji01.head(10)
laiyuan日期姓名001姓名002姓名003姓名004姓名005姓名006姓名007姓名008...姓名073姓名074姓名075姓名076姓名077姓名078姓名079姓名080姓名081姓名082
0./数据源/2012\201208.xls2012-08-019340.0990.01106.0748.01070.01196.0826.0854.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1./数据源/2012\201209.xls2012-09-01954.0990.01106.0748.01070.01196.0826.0854.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
2./数据源/2012\201210.xls2012-10-01934.0990.01106.0748.01070.01196.0826.0854.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
3./数据源/2012\201211.xls2012-11-01934.0990.01106.0748.01070.01196.0826.0854.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4./数据源/2012\201212.xls2012-12-01NaNNaN1106.0748.01070.01196.0826.0854.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
5./数据源/2013\201301.xls2013-01-01NaNNaN1106.0748.01070.01196.0826.0854.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
6./数据源/2013\201302.xls2013-02-01NaNNaN1106.0748.01070.01196.0826.0854.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
7./数据源/2013\201303.xls2013-03-01NaNNaN1106.0748.01070.01196.0826.0854.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
8./数据源/2013\201304.xls2013-04-01NaNNaN1106.0748.01070.01196.0826.0854.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
9./数据源/2013\201305.xls2013-05-01NaNNaN1106.0748.01070.01196.0826.0854.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN

10 rows × 84 columns

# 按列找异常值,并用语言描述出来
import pandas as pd
cun = tongji01.copy()  #将数据块复制,后面发现的异常值进行覆盖
hangzuobiao = tongji01.laiyuan.to_list() # 将来源列转列表
suo = tongji01   #.iloc[:,1:4] #   为了缩小范围,提高实验速度
print(suo.shape)
lieming = suo.columns.to_list() #将列标题转列表
for index,col in enumerate(lieming): # 遍历列名,lie_max = suo[col].value_counts().index[:1].values # 关键点,找到该列频率最高的值gailie_max = lie_max[0] # 取当前值,上面计算出来的是列表for hang in range(suo.shape[0]): # 按行总数遍历 ,if suo[col].dtype in ["int64", "float64"]: #判断是否都是数字danqian = suo.loc[hang,col] # 取出当前值if pd.isnull(danqian) == True or danqian == gailie_max: # 为空跳过,相等跳过continue
#             print("当前值:"+str(danqian))
#             print("当列出现次数最多的:"+str(gailie_max))yichang = (gailie_max-danqian)/gailie_max
#             print(yichang)if abs(yichang)>0.6: # 差额相除取绝对值,看是否超过6成zhi = "异常"+str(hangzuobiao[hang])[:10]+"_"+str(col)+"_:"+str(suo.loc[hang,col])cun.iloc[hang,index] = zhi
cun.to_excel("N175_标记异常值_结果.xlsx")
(107, 84)
from styleframe import StyleFrame
import openpyxl
#可以自我覆盖,但是这样有风险,为了列宽自适应,筛选,冻结窗口
file_path = "N175_标记异常值_结果.xlsx"
df=pd.read_excel(file_path)
col = df.columns.values.tolist()
excel_writer = StyleFrame.ExcelWriter(file_path)
sf = StyleFrame(df)
sf.to_excel(excel_writer=excel_writer, best_fit=col,columns_and_rows_to_freeze='a2', row_to_add_filters=0,
)
excel_writer.save()
# 将句柄关闭,否则是只读格式,打不开
excel_writer.handles = None  #这句代码有用,很久才找到
print("well done")
well done

原始数据
在这里插入图片描述
处理后的数据
在这里插入图片描述


这篇关于N175_标记异常值_自动汇聚某单位的住房公积金 有补发有增减 如何批量找出来的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/427439

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

poj 1981 单位圆套最多点

题意: 给n(300)个点,用单位圆去套他们,问最多能套多少个点。 解析: 点击打开链接 直接当作单位圆套最多点的模板吧,用极脚来排序。 代码: #pragma comment(linker, "/STACK:1677721600")#include <map>#include <set>#include <cmath>#include <queue>

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

Thymeleaf:生成静态文件及异常处理java.lang.NoClassDefFoundError: ognl/PropertyAccessor

我们需要引入包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>sp

脏页的标记方式详解

脏页的标记方式 一、引言 在数据库系统中,脏页是指那些被修改过但还未写入磁盘的数据页。为了有效地管理这些脏页并确保数据的一致性,数据库需要对脏页进行标记。了解脏页的标记方式对于理解数据库的内部工作机制和优化性能至关重要。 二、脏页产生的过程 当数据库中的数据被修改时,这些修改首先会在内存中的缓冲池(Buffer Pool)中进行。例如,执行一条 UPDATE 语句修改了某一行数据,对应的缓

深入理解数据库的 4NF:多值依赖与消除数据异常

在数据库设计中, "范式" 是一个常常被提到的重要概念。许多初学者在学习数据库设计时,经常听到第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及 BCNF(Boyce-Codd范式)。这些范式都旨在通过消除数据冗余和异常来优化数据库结构。然而,当我们谈到 4NF(第四范式)时,事情变得更加复杂。本文将带你深入了解 多值依赖 和 4NF,帮助你在数据库设计中消除更高级别的异常。 什么是

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“