Python数据分析4------------数据变换
1、简单变换:
开方、平方、对数等
2、数据规范化:
(1)离差标准化(最小最大标准化):消除量纲(单位)影响以及变异大小因素的影响。
x1=(x-min)/(max-min)
代码:data1=(data-min())/(data.max()-data.min())
(2)标准差标准化(0-均值标准化)------消除单位影响以及变量自身变异影响。
x1=(x-mean)/std
代码:data2=(data-data.mean())/data.std()
它有个特性,得到的数据负数较正数多,且得到的平均数为0,标准差为1.
(3)小数定标规范化------消除单位影响
x1=x/10**(k)
k=log10(x的绝对值的最大值)
代码:k=numpy.ceil(numpy.log10(data.abs().max()))
data3=data/10**k
3、离散化:
(1)等宽离散化:将属性的值域分为具有相同宽度的区间。
代码:采用pandas.cut()函数,cut有三个参数,第一个是数据,第二个参数表示分为k份,第三个参数为标签labels。
pandas.cut(data,3,labels=["便宜","适中","贵"])#将数据data分为3等份,标签为便宜、适中、贵
如:
非等宽离散化:pandas.cut ( data, [ 0,50,150,300,500,data.max() ] ,labels)
(注意:将列表[0,50,……]可以换成分位数,就可以进行等频率离散化。
(2)等频率离散化:将相同数据的记录放进每个区间 ①求分位数②cut函数
过程主要将k份的分位数求出来,dataframe可以用describe函数求,属性采用percentile就可以了。列表可以用numpy的percentile来求。比如np.percentile(data,75)是求四分位数(3/4)。
①dataframe结构
#k为分的份数,w作为分位数,可以运用dataframe.describe(percentiles=w)来计算分位数
w=[ i/k for i in range(k+1)]
w=data.describe (percentiles=w) [ 4:4+k+1] #取几个分位数的值作为不等长列表,用于cut函数
d2=pd.cut(data,w,labels=range(k))
②列表、数组结构
#用np.percentile(data,百分比)来求
temp=[ i/k*100 for i in range(k+1)]
w=[ ]
for item in temp:
w.append(np.percentile(data,item))
d3=pd.cut(data,w,labels=range(k))
(3)一维聚类离散化:先聚类(如k-means),然后对每一类的连续值进行标记。
①k-means求聚类中心,并排序,将相邻两项的中点作为边界点,把首末边界点加上,整合成w列表②cut函数
k-means:
from sklearn.cluster import KMeans
kmodel=KMeans(n_clusters=k) #k为聚成几类
kmodel.fit(data.reshape(len(data),1))) #训练模型
c=pd.DataFrame(kmodel.cluster_centers_) #求聚类中心
c=c.sort_values(by=’列索引') #排序
w=pd.rolling_mean(c,2).iloc[1:] #用滑动窗口求均值的方法求相邻两项求中点,作为边界点
w=[0] +list(w[0] + [ data.max() ] #把首末边界点加上
d3= pd.cut(data,w,labels=range(k)) #cut函数
4、小波变换
小波变换是一种新的数据分析方法,主要对信号数据进行特征提取。
5、属性构造:
也就是构造新的属性再写入原数据中。
Python数据分析4------------数据变换的更多相关文章
- python数据分析笔记——数据加载与整理]
[ python数据分析笔记——数据加载与整理] https://mp.weixin.qq.com/s?__biz=MjM5MDM3Nzg0NA==&mid=2651588899&id ...
- Python数据分析_Pandas01_数据框的创建和选取
主要内容: 创建数据表 查看数据表 数据表索引.选取部分数据 通过标签选取.loc 多重索引选取 位置选取.iloc 布尔索引 Object Creation 新建数据 用list建series序列 ...
- Python数据分析--------numpy数据打乱
一.shuffle函数: import numpy.random def shuffleData(data): np.random.shufflr(data) cols=data.shape[1] X ...
- Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识
Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4 ...
- python数据分析之pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
1 引言 Pandas是作为Python数据分析著名的工具包,提供了多种数据选取的方法,方便实用.本文主要介绍Pandas的几种数据选取的方法. Pandas中,数据主要保存为Dataframe和Se ...
- 【python数据分析实战】电影票房数据分析(二)数据可视化
目录 图1 每年的月票房走势图 图2 年票房总值.上映影片总数及观影人次 图3 单片总票房及日均票房 图4 单片票房及上映月份关系图 在上一部分<[python数据分析实战]电影票房数据分析(一 ...
- python数据分析数据标准化及离散化详解
python数据分析数据标准化及离散化详解 本文为大家分享了python数据分析数据标准化及离散化的具体内容,供大家参考,具体内容如下 标准化 1.离差标准化 是对原始数据的线性变换,使结果映射到[0 ...
- python数据分析-数据导入
1.导入CSV格式数据 import pandas data = pandas.read_csv("C:\\Users\\zhaosai\\Desktop\\进击的DBA\\谁说菜鸟不会数据 ...
- 小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据
在家为国家做贡献太无聊,不如跟我一起学点 Python 人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Panda ...
随机推荐
- [bzoj4027][HEOI2015]兔子与樱花_贪心_树形dp
兔子与樱花 bzoj-4027 HEOI-2015 题目大意:每个点有c[i]朵樱花,有一个称重m, son[i]+c[i]<=m.如果删除一个节点,这个节点的樱花或移动到它的祖先中深度最大的, ...
- [Javascript] Understand common misconceptions about ES6's const keyword
Values assigned with let and const are seen everywhere in JavaScript. It's become common to hear the ...
- ORM进阶:Hibernate框架搭建及开发
本节将開始.使用hibernate搭建持久层.当然在决定用不用之前,还请斟酌一下是否使用.了解一下Hibernate的优缺点. Hibernate优劣对照 Hibernate是一个持久的ORM框架.首 ...
- ScalaChina: Scala中文社区
给大家推荐一个很常使用心的Scala中文社区 ScalaChina地址:http://scalachina.org/ 来自社区创建者的<我为什么想做ScalaChina>: http:// ...
- Android与JS互相调用以及注意
近期项目中常常使用Html5而Android与JS调用常常会用到,这里记录一下,測试系统5.0以上. 这里先贴一下源代码 Activity: package jwzhangjie.com.webvie ...
- Linux中修改系统时间
#date //显示当前日期 #date -s //设置当前时间,只有root权限才能设置,其他只能查看. #date -s 20061010 //设置成20061010,这样会把具体时间设置成空00 ...
- 每天一个linux命令(01):ifconfig命令
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...
- Linux - 控制台界面,虚拟界面,字符界面
tty控制台终端. pts虚拟终端. tty1 图形界面. tty2 字符界面. Ctrl+Alt+F2-6 在字符界面下,通过Alt+F2 切换回来.或者切换到其他的字符界面. Alt+F2 pts ...
- tflearn Training Step每次 We will run it for 10 epochs (the network will see all data 10 times) with a batch size of 16. n_epoch=10, batch_size=16
Training TFLearn provides a model wrapper 'DNN' that can automatically performs a neural network cla ...
- yii1 session
在 Yii框架中使用session 的笔记: 首先,在Yii框架中,你不需要像标准PHP代码那样使用session_start(),在Yii框架中,autoStart 属性缺省被设置为true,所以, ...