
数据变换与计算
文章平均质量分 65
黄饱饱_bao
我喜欢看过世界的男生
展开
-
缺失值处理 - 获取一段时间内所有日期的列表 - (Python、MySQL)
有的时候做数据清洗的时候 ,如果表中数据在某一天没有记录,但是业务要求不能有缺失日期,那么就需要我们将这些缺失日期补上。这个前提就是我们先要有一张包含所有日期的列表(作为左表),供我们进行匹配(left join)进而补上缺失日期。Python代码:import datetimedef Date_interval_list(date_start = None,date_end...原创 2019-01-25 15:34:44 · 7097 阅读 · 0 评论 -
合并数据 - 合并多个Excel文件并转成CSV - Python代码
在工作中,有时候因为部门间的数据权限问题,推送数据的时候往往是通过邮件完成,对于量大的数据,往往会拆成很多个excel发送,到下一个部门导入数据库之前,总是需要先将所有excel合成一个excel,再导入数据库。手动操作往往受限于各种因素,嫌麻烦?打开excel太慢浪费时间?需要上班之前导好表又不想每天都提前来上班?总之下面这个代码可以解救你:# -*- coding: utf-8 -*-...原创 2018-08-15 15:56:20 · 7103 阅读 · 1 评论 -
获取数据 - 下载附件解压附件 - Python代码
一些线上化刚刚起步的部门,并不是所有的数据都是直接推送到服务器的数据库中,有些数据往往是数据中心通过邮件形式推送的,如果每天接收邮件--下载附件--解压--合并文件--导入数据库,对于数据工程师来说,这无疑是琐碎且没有技术含量的工作,任谁都不愿意在这种工作上面浪费时间。对于这样的工作,最适合用代码自动完成了。下面就是用 Python 完成下载邮箱附件并解压的代码了,如果还需要合并文件,可以查看...原创 2018-09-27 22:03:37 · 4987 阅读 · 1 评论 -
获取数据 - 将Excel文件读入矩阵matrix中 - Python代码
机器学习中,很多算法的计算逻辑是基于数学的,免不了求特征值和特征向量这种事情,因此,在数据预处理的时候,将数据源中的数据转储成矩阵格式是很有必要的。原数据:代码:import numpy as npimport pandas as pdimport xlrdfrom sklearn import preprocessingdef excel_to_matrix(pat...原创 2018-08-21 16:52:16 · 20477 阅读 · 10 评论 -
异常值处理 - iterrows()对 DataFrame 进行遍历,并修改遍历中的异常值 - Python代码
先要有一个很简单的被命名为 data 的表:第三列是一个名曰周杰伦的人历年来每个月的月薪,其中2016年月薪10万,纵观他历年来的月薪基本不超过3万(显然他不是我的偶像胖伦),因此对于这个人来说月薪10万是有些异常的。有些人可能会说,这不简单?直接:【 data[monthly_pay] [data[monthly_pay] >= 10] = null 】就好了啊,可是你忘记了...原创 2019-01-18 15:05:09 · 17035 阅读 · 0 评论 -
合并数据 - 方法总结(concat、append、merge、join、combine_first)- Python代码
描述分析一个业务的时候往往涉及到很多数据,比如企业融资信息、投资机构信息、行业标签、招聘数据、政策数据等,这些数据分别存储在不同的表中。通过堆叠合并和主键合并等多种合并方式,可以将这些表中需要的数据信息合并在一张表中供分析使用。合并方法堆叠合并:横向堆叠,纵向堆叠; 主键合并; 重叠合并;堆叠合并堆叠合并就是简单的把两个表拼在一起,分为横向堆叠和纵向堆叠。横向堆叠横向...原创 2018-08-20 14:38:55 · 19283 阅读 · 0 评论 -
缺失值处理 - 拉格朗日插值法 - Python代码
目录缺失值处理拉格朗日差值法的理论基础拉格朗日插值法代码实现其他数据预处理方法缺失值处理处理缺失值常用的办法可分为三类:删除记录、数据插补、不处理。其中常见的数据插补法有:如果通过删除小部分的数据就可以达到既定的目标,且不会影响结果的准确性,那么这无疑是最简单有效的。但是,在不了解情况的时候还是不要这样冒险比较好,因为删除数据是所有老板最不愿意看见的,不但浪费了...原创 2018-12-03 20:16:45 · 8715 阅读 · 6 评论 -
缺失值处理 - 定位空值并用空值的上一个值填充 - (Excel)
今天小助理很烦恼,说要处理一批汇率的数据,用近邻日期的汇率填充汇率为空的日期的汇率,这句话比较拗口,我们用数据解释一下。比如下表,10月6日和10月8日9日的汇率没有采集到,那么我们就用10月5日的汇率填充10月6日的,用10月7日的数据填充8日和9日的。对于很多习惯用MySQL处理数据的人,第一反应可能是先筛选出有汇率和没有汇率的数据,然后对没有汇率的用update···set··...原创 2018-11-08 14:58:03 · 36629 阅读 · 6 评论 -
Python数据清洗 - 洗什么?怎么洗?看完就明白了
目录缺失值处理删除缺失值插补缺失值不处理缺失值重复值处理异常值处理遍历查找异常值,并根据规则调整大小删除异常值视为缺失值后进行插补数据挖掘过程中,采集的原始数据里存在着各种不利于分析与建模工作的因素,比如数据不完整、数据矛盾、异常值等。这些因素不仅影响建模的执行过程,更有甚者在不知不觉间给出错误的建模结果,这就使得数据清洗显得尤为重要。但是数据清洗并不是数...原创 2018-08-14 15:29:40 · 37419 阅读 · 12 评论 -
DataFrame字符串之分割split()、清洗drop()、合并concat()、重新建立索引reset_index() - (Python)
数据建模之前,我们从数据部门拿到数据,但是这些数据的格式往往并不是我们可以直接使用的,比如下面表中的数据(左:原数据格式)。原数据格式id自成一列,这个很好,但是标签和标签的置信度(这个id属于这个标签的可能性) 都在一个单元格里,仅用空格分隔开来,这对数据处理的过程中很不方便。我们需要将数据转化成右图格式(右:所需数据格式),这有利于我们用id和其他表格中的数据匹配。原数据格式: ...原创 2019-01-28 16:36:59 · 7028 阅读 · 0 评论 -
字符串处理 - DataFrame文本数据的量化 - Python代码
在数据建模的过程中,对于文本数据,比如婚姻情况、性别、居住地等。这给只接受数值型的模型造成了很大的干扰,因此在数据采集到数据建模的过程中,我们需要一个过程,叫量化。比如这样一个源数据:收入 身高 长相 体型 是否见面 一般 高 丑 胖 否 高 一般 帅 瘦 是 高 一般 帅 瘦 是...原创 2018-08-21 17:58:14 · 7229 阅读 · 0 评论 -
重复值处理 - 清洗 DataFrame 中的各种重复类型 - Python代码
目录所有列是否完全重复指定某一列是否重复根据多列判断是否重复,防止误删数据其他数据预处理方法通过八爪鱼或者火车头等采集器从全网抓取的数据中,总会存在各种各样的重复数据,为保证数据在使用过程中的准确性,总要先进行一番清洗。所有列是否完全重复在Pandas中,.duplicated()表示找出重复的行,默认是判断全部列,返回布尔类型的结果。对于完全没有重复的行,返回 Fal...原创 2018-08-30 17:24:11 · 10337 阅读 · 1 评论 -
正则表达式 - 去掉乱码字符/提取字符串中的中文字符/提取字符串中的大小写字母 - Python代码
目录1.乱码符号种类较少,用replace()2.乱码字符种类较多,用re.sub()3.提取字符串中的中文字符4.提取字符串中的中文字符和数字5.提取其他数据清洗的时候一大烦恼就是数据中总有各种乱码字符,比如!@#¥%……&——+*(){}:“》《?|【】‘;/。,、-=去掉这些很简单:1.乱码符号种类较少,用replace()如果只是很少类型的乱码符...原创 2019-04-28 14:24:18 · 9565 阅读 · 0 评论 -
特征计算 - 遍历求值提速 6 万倍 lambda...if...else(if...else...) +map() 对比 iterrows() - Python代码
Python 进行 DataFrame 数据处理的过程中,需要判断某一列中的值(条件),然后对其他两列或三列进行求和(均值/最值)等运算,并把运算结果存储在新的一列中。干说可能觉得比较晕,我们来看一个例子:下表 data_base 中,预测区间这一列共有 1/2/3/4 类值,现需要生成新列预测概率,新列的计算规则为:若预测区间=1,则求分类概率_1与分类概率_2的均值; 若预测区间=2...原创 2019-02-14 16:25:22 · 3789 阅读 · 1 评论 -
Python连接MySQL数据库(pymysql),DataFrame写入 MySQL(create_engine)- Python代码
模块安装使用以下命令安装 PyMySQL:$ pip install PyMySQL若系统不支持 pip,还可以这样安装:$ git clone https://github.com/PyMySQL/PyMySQL$ cd PyMySQL/$ python3 setup.py install Python连接MySQL数据库# -*- coding:utf-8...原创 2019-02-01 15:08:51 · 19470 阅读 · 2 评论 -
分组统计 - DataFrame.groupby() 所见的各种用法 - Python代码
所见 1 :日常用法所见 2 :解决groupby.sum() 后层级索引levels上移的问题所见 3 :解决groupby.apply() 后层级索引levels上移的问题所见 4 :groupby函数的分组结果保存成DataFrame原创 2019-01-31 17:59:54 · 11134 阅读 · 0 评论 -
分组统计 - 不同时间颗粒度下,按照秒、分、时、日、周、月、季度、年 GROUP BY 分组统计 - (MySQL)
数据处理时,经常需要:统计不同时间粒度下的数据分布情况。例如,网站每天(or每小时)的访问量,周杰伦每年(or每季度 or每月)的收入等。首先有一个表叫:table_test,其中 time 列为最细的时间颗粒度,类型是datetime,income 列是收入(下图)。 代码:##################################################...原创 2019-01-24 16:51:33 · 6003 阅读 · 0 评论 -
特征计算 -获取本周,本月初,本月末,上月同日,本季,本年初,本年末的日期 - (Python、MySQL、Oracle)
数据预处理的过程中,往往需要计算当前日期往前推12个月(或者本周,本月,本季,本年)中间发生的事情,因此这里贴上相关处理的代码:Python代码:import datetimefrom datetime import timedeltanow = datetime.datetime.now()#天today = now#今天yesterday = now - timedel...原创 2019-01-21 16:26:13 · 3600 阅读 · 0 评论 -
数据标准化 - scale() - Python代码
数据分析的过程中,比如线性规划这一类的分析,如果有些特征的数值远远高于或低于其他数值,通常称之为独立点、异常值或噪点,那么对于受噪点影响较大的模型就无法正确地去学习其他特征。原创 2018-12-29 14:39:05 · 14073 阅读 · 1 评论 -
数据离散化 - 等宽&等频&聚类离散 - Python代码
目录等宽离散等频离散聚类离散附录:rolling_mean函数解释cut函数解释其他数据预处理方法一些数据挖掘算法中,特别是某些分类算法(eg:ID3算法、Aprioroi算法等),要求数据是分类属性形式。因此常常需要将连续属性变换成分类属性,即离散化。离散化就是在数据的取值范围内设定若干个离散的花粉店,将取值范围划分为一些离散化的区间,最后用不同的符号护着整数...原创 2018-08-17 17:55:39 · 35636 阅读 · 15 评论 -
Python - Excel文件与CSV文件相互转化
Excel文件转化成CSV - pandas#excel文件转化成csvimport pandas as pdfile='E:\\pythondata\\union\\test_3.xlsx'outfile='E:\\pythondata\\union\\test_3.csv'def xlsx_to_csv_pd(): data_xls = pd.read_excel(...原创 2018-08-16 15:34:01 · 12460 阅读 · 3 评论 -
数据归一化 - MinMaxScaler()/MaxAbsScaler() - Python代码
目录归一化数据归一化的背景介绍MinMaxScaler:归一到 [ 0,1 ] MaxAbsScaler:归一到 [ -1,1 ] 标准化去均值,方差规模化归一化数据归一化的背景介绍在之前做聚类分析的时候我们发现,聚类的效果往往特别受其中一列数据的影响,使得原本应该散布在二维平面图上的点,变成聚集在一条线上的点,可想而知,其聚类效果肯定不理想。左图:为所有数...原创 2018-08-10 14:49:23 · 104884 阅读 · 20 评论 -
特征计算 - Jaccard 相似系数与 Python 代码实现
Jaccard 相似系数又称为Jaccard相似性度量(Jaccard系数,Jaccard 指数,Jaccard index)。用于比较有限样本集之间的相似性与差异性。Jaccard系数值越大,样本相似度越高。定义为相交的大小除以样本集合的大小:(若A B均为空,那么定义J(A,B)= 1)与 Jaccard 相似系数相对的指标是Jaccard 距离(Jaccard distance)...原创 2019-03-12 12:06:56 · 13670 阅读 · 3 评论 -
降维方法 -简直太全- 附Python代码(Random Forest、Factor Analysis、corr、PCA、ICA、IOSMA
为什么要降维?建模初期,我们往往只有几个指标,这个时候不太涉及到降维,但是一个月后你就发现,模型的指标越来越多,从原有的五六个指标一步一步变成 100 个指标。100 个很多吗?不多!但是以后呢?两个月过去可能会变成 500 个,三个月过去就会超过 1000 个,以后还会更多!我们一边惊讶着,一个模型竟然可以有这么多指标,一边也在抓耳挠腮,这么多指标里面,肯定有冗余,怎么找出他们?总不能一...原创 2018-07-01 22:28:39 · 36674 阅读 · 80 评论