数值处理(针对数字值的处理)

原创 2018年04月16日 23:40:58

仅代表个人学习理解,不具有科学严谨的指导作用。

通常需要处理空、异常、重复值


而异常值的判断通常有强烈的主观色彩及业务逻辑关系的影响,所以判断规则不能准确说明。例如:一个产品平时日销售量平均是10单位,但某一天进行促销卖了100,这个数值在统计意义(正态分布)上可能是个异常值,但是有实际的业务意义。


DataFrame.isnull()方法 可以得出一个布尔值的DataFrame,其中False的是空值np.nan

0是代表行,1是代表列

DataFrame.isnull().any(axis=0或1)  可以返回行或者列的含有np.nan的值的一个布尔数组 其中axis=0是沿着行进行索引的意思,所以返回的是哪一列中含有np.nan值,而axis=1是沿着列经行索引的意思,所以返回的是哪一行含有np.nan的值。

DataFrame.dropna(axis=0或1) axis=0删除的是行含有np.nan值的一行,axis=1删除的是列含有np.nan值的一列


DataFrame.drop_dulicates()方法 可以去重 可以指定列 keep参数可以指定保留last后一条数据



from pandas import DataFrame,Series
import pandas as pd
import numpy as np
from sklearn.preprocessing import Imputer
In [5]:
data = DataFrame(np.random.randn(6,4),columns = ['col1','col2','col3','col4'])
data.iloc[1:2,1] = np.nan
data.iloc[4,3] = np.nan
In [18]:
data.isnull()
Out[18]:
  col1 col2 col3 col4
0 False False False False
1 False True False False
2 False False False False
3 False False False False
4 False False False True
5 False False False False
In [25]:
data.isnull().any(axis=1)
Out[25]:
0    False
1     True
2    False
3    False
4     True
5    False
dtype: bool
In [24]:
data.isnull().any(axis=0)
Out[24]:
col1    False
col2     True
col3    False
col4     True
dtype: bool
In [26]:
data.isnull().all()
Out[26]:
col1    False
col2    False
col3    False
col4    False
dtype: bool
In [27]:
data1=data.dropna(axis=1)
In [28]:
data1
Out[28]:
  col1 col3
0 -1.310593 1.390500
1 -0.234247 -0.127881
2 -1.167354 -1.185917
3 1.340146 -0.522501
4 0.056414 1.740645
5 2.435139 2.231075
In [31]:
data2=data.dropna()
In [32]:
data2
Out[32]:
  col1 col2 col3 col4
0 -1.310593 0.945923 1.390500 -0.441068
2 -1.167354 0.095380 -1.185917 1.618987
3 1.340146 0.472835 -0.522501 0.693753
5 2.435139 1.290869 2.231075 0.636357
In [33]:
nan_model = Imputer(missing_values='NaN',strategy='mean',axis=0)
In [34]:
nan_model
Out[34]:
Imputer(axis=0, copy=True, missing_values='NaN', strategy='mean', verbose=0)
In [37]:
nan_result = nan_model.fit_transform(data)
In [38]:
nan_result
Out[38]:
array([[-1.31059328,  0.94592268,  1.39050006, -0.44106806],
       [-0.23424749,  0.62016568, -0.12788133, -1.22345664],
       [-1.16735373,  0.09537989, -1.18591717,  1.61898689],
       [ 1.34014565,  0.47283499, -0.52250133,  0.69375299],
       [ 0.05641423,  0.29582186,  1.74064535,  0.2569144 ],
       [ 2.43513913,  1.29086899,  2.23107545,  0.63635685]])
In [41]:
datafix1 = data.fillna(data.mean(axis=0))
In [42]:
data.mean(axis=0)
Out[42]:
col1    0.186584
col2    0.620166
col3    0.587654
col4    0.256914
dtype: float64
In [43]:
datafix1
Out[43]:
  col1 col2 col3 col4
0 -1.310593 0.945923 1.390500 -0.441068
1 -0.234247 0.620166 -0.127881 -1.223457
2 -1.167354 0.095380 -1.185917 1.618987
3 1.340146 0.472835 -0.522501 0.693753
4 0.056414 0.295822 1.740645 0.256914
5 2.435139 1.290869 2.231075 0.636357
In [44]:
datafix2 = data.fillna(method='bfill',limit=1)
In [45]:
datafix2
Out[45]:
  col1 col2 col3 col4
0 -1.310593 0.945923 1.390500 -0.441068
1 -0.234247 0.095380 -0.127881 -1.223457
2 -1.167354 0.095380 -1.185917 1.618987
3 1.340146 0.472835 -0.522501 0.693753
4 0.056414 0.295822 1.740645 0.636357
5 2.435139 1.290869 2.231075 0.636357
In [51]:
data1=['a',1]
data2=['b',2]
data3=['a',1]
data4=['b',2]
In [52]:
data2 = DataFrame([data1,data2,data3,data4],columns=['c1','c2'])
In [48]:
data2
Out[48]:
  c1 c2
0 a 1
1 b 2
2 a 1
3 b 4
In [49]:
datap = data2.drop_duplicates()
In [58]:
datap2 = data2.drop_duplicates('c2')
In [54]:
datap1
Out[54]:
  c1 c2
0 a 1
1 b 2
In [59]:
datap2
Out[59]:
  c1 c2
0 a 1
1 b 2

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33711966/article/details/79968435

商业数据分析与处理

-
  • 1970年01月01日 08:00

java常用数字处理类归纳整理

1.DecimalForamt类(数字格式化),什么也不说了看看代码就懂了 /** * 数字的格式化 */ public static...
  • eyishion
  • eyishion
  • 2016-02-19 00:01:30
  • 1406

Shell数值操作

shell编程范例中的数值操作
  • xiaocainiaoshangxiao
  • xiaocainiaoshangxiao
  • 2014-09-21 22:22:58
  • 2058

one-hot enconding,类别型特征,非数值型特征。

在计算广告领域,对于CTR,CVR,反作弊等内容时,对于categorical features,时常会用one-hot enconding 的处理方法。 借用互联网已有的博客, 在很多机器学习任...
  • fangwc
  • fangwc
  • 2016-03-04 16:07:17
  • 2537

如何处理javascript中var类型有效数据极限值问题(超大数据)

最近在做web项目中遇到一个从来未遇到的问题,这个问题相信做为web开发的程序员来说遇到的可能性比较小!那么这个问题是怎么样出现的呢?我们有该如何解决这个问题呢? 由于javascript是弱类型语...
  • abc5138678
  • abc5138678
  • 2014-02-11 11:18:41
  • 569

算法采集1

从100万个数字中找到最大的10个数字循环大数组的每一个元素,如果当前数字大于这10个数字的最小值,就剔除最小值,将当前数字写进去。如果10个数字是有序的,那么就可以快速定位数字要写入的位置;如果是无...
  • hallo2014
  • hallo2014
  • 2016-04-13 22:27:45
  • 186

js中的一些数字处理方法

javascript中Math对象的使用
  • playboyanta123
  • playboyanta123
  • 2015-09-10 14:36:52
  • 1779

数字图像处理之归一化方法

1.把数变为(0,1)之间的小数,
  • WiseClown
  • WiseClown
  • 2014-08-13 12:01:21
  • 797

决策树连续值处理案例

  • 2017年05月29日 22:06
  • 4.61MB
  • 下载

含数字的字段名 sql语句中处理

select [20FTQTY],[40FTQTY],[40HQQTY]from cache_fmsipfh   select 20FTQTY,40FTQTY,40HQQTYfrom cac...
  • chenghaibing2008
  • chenghaibing2008
  • 2010-05-12 14:49:00
  • 727
收藏助手
不良信息举报
您举报文章:数值处理(针对数字值的处理)
举报原因:
原因补充:

(最多只允许输入30个字)