一、数据处理其实是一个很麻烦的事情。

    在一个样本中存在特征数据(比如:人(身高、体重、出生年月、年龄、职业、收入...))当数据的特征太多或者特征权重小或者特征部分满足的时候。

    这个时候就要进行数据的处理(比如:预测性别,特征出生年月,的影响就会很低,这里就要减少这一特征的权重,或者删除。再比如:预测92年的人的职业,这个时候首先需要过滤特征,然后判断出生年月中的年就没有必要成为特征,但是可以新增特征月,删除原来的出生年月特征)

    还有就是我们在使用table数据时,一般数据都是分开(比如:用户、角色、权限等)。我们这个时候就需要把数据合并成一个群体样本。通过他们之间的联系,进行数据合并

  二、上面只是列举了几种数据的处理方式,实际的数据处理比想象的要复杂。当数据特征数据处理的很好的时候,我们会进行数据分割。一般分割为训练集、测试集。目的用来评估模型的准确度。

  三、例举几种数据处理方式:

    1)数据合并

  1. # 读取数据
  2. orders = pandas.read_csv("market/orders.csv")
  3. prior = pandas.read_csv("market/order_products__prior.csv")
  4. products = pandas.read_csv("market/products.csv")
  5. aisles = pandas.read_csv("market/aisles.csv")
  6. # 合并数据
  7. _msg = pandas.merge(orders, prior, on=["order_id", "order_id"])
  8. _msg = pandas.merge(_msg, products, on=["product_id", "product_id"])
  9. merge_data = pandas.merge(_msg, aisles, on=["aisle_id", "aisle_id"])
  10. # 交叉表(特殊分组)
  11. # (用户ID, 类别)
  12. cross = pandas.crosstab(merge_data["user_id"], merge_data["aisle"])

    2)过滤特征

  1. # 数据筛选
  2. train_data = train_data.query("x > 1.0 & x < 1.25 & y > 2.5 & y < 2.75")

    3)新增删除特征

  1. # 转换时间
  2. time_value = pandas.to_datetime(train_data["time"], unit="s")
  3. # 转换成字典
  4. time_value = pandas.DatetimeIndex(time_value)
  5. # print(time_value)
  6.  
  7. # 构造特征
  8. data = train_data.copy()
  9. data["day"] = time_value.day
  10. data["hour"] = time_value.hour
  11. data["weekday"] = time_value.weekday
  12. # print(train_data.head(10))
  13.  
  14. # 删除影响特征的数据,axis为1纵向删除
  15. data = data.drop(["time"], axis=1)
  16.  
  17. # 转换时间
  18. time_value = pandas.to_datetime(train_data["time"], unit="s")
  19. # 转换成字典
  20. time_value = pandas.DatetimeIndex(time_value)
  21. # print(time_value)
  22.  
  23. # 构造特征
  24. data = train_data.copy()
  25. data["day"] = time_value.day
  26. data["hour"] = time_value.hour
  27. data["weekday"] = time_value.weekday
  28. # print(train_data.head(10))
  29.  
  30. # 删除影响特征的数据,axis为1纵向删除
  31. data = data.drop(["time"], axis=1)
  32.  
  33. # 删除小于目标值的数据
  34. place_count = data.groupby("place_id").count()
  35. # print(place_count)
  36. # 过滤数量大于5的地点ID,并且加入列中
  37. tf = place_count[place_count.x > 5].reset_index()
  38. # print(tf)
  39. data = data[data["place_id"].isin(tf.place_id)]
  40.  
  41. # 取特征值和目标值
  42. y = data["place_id"]
  43. x = data.drop(["place_id", "row_id"], axis=1)

  4)数据分割(sklearn.model_selection),很重要

  1.   # 数据分割
  2. x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)

  x,y:训练集和目标值

  x_train, y_train:训练集

  x_test, y_test:测试集

  

Python之数据处理-2的更多相关文章

  1. python地理数据处理库geopy

    http://blog.csdn.net/pipisorry/article/details/52205266 python地理位置处理 python地理编码地址以及用来处理经纬度的库 GeoDjan ...

  2. Python空间数据处理环境搭

    Python空间数据处理环境搭 Conda的下载和安装 什么是Conda? 官方定义:Package, dependency and environment management for any la ...

  3. Python之数据处理

    一.CSV数据处理 CSV文件格式:逗号分隔值(Comma-Separated Value,CSV,有时也称为字符分隔值,因为分隔符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文 ...

  4. Python爬虫数据处理

    一.首先理解下面几个函数 设置变量 length()函数 char_length() replace() 函数 max() 函数1.1.设置变量 set @变量名=值 set @address='中国 ...

  5. python常用数据处理库

    Python之所以能够成为数据分析与挖掘领域的最佳语言,是有其独特的优势的.因为他有很多这个领域相关的库可以用,而且很好用,比如Numpy.SciPy.Matploglib.Pandas.Scikit ...

  6. Python - 基本数据处理函数round()、int()、floor()、ceil()

    前言 对每位程序员来说,在编程过程中数据处理是不可避免的,很多时候都需要根据需求把获取到的数据进行处理,取整则是最基本的数据处理.取整的方式则包括向下取整.四舍五入.向上取整等等.下面就来看看在Pyt ...

  7. Python的数据处理学习(三)

    三.类的继承   Python 的class可以允许从零开始创建一个定制类,就像文章(二)创建Athlete类一样,也可以通过继承现有的其他类类创建一个类,这也包括用List.set和dict提供的p ...

  8. Python的数据处理学习(二)

    本文参考Paul Barry所著的<Head First Python>一书,参考代码均可由http://python.itcarlow.ie/站点下载.本文若有任何谬误希望不吝赐教~ 二 ...

  9. python pandas 数据处理

    pandas是基于numpy包扩展而来的,因而numpy的绝大多数方法在pandas中都能适用. pandas中我们要熟悉两个数据结构Series 和DataFrame Series是类似于数组的对象 ...

  10. 6 python高级数据处理和可视化

    6.2. pyplot作图 1.折线图和散点图 t = np.arange(0,4,0.1) plt.plot(t,t,'o',t,t+2,t,t**2,'o') plt.show() 2.柱线图 p ...

随机推荐

  1. Oracle 表结构、索引以及分区信息查询

    Oracle 表结构.索引以及分区信息查询 /* 获取表:*/ select table_name from user_tables; --当前用户的表 select table_name from ...

  2. python获取公网ip的几种方式

    python获取公网ip的几种方式 转 https://blog.csdn.net/conquerwave/article/details/77666226 from urllib2 import u ...

  3. 003-结构型-03-代理模式(Proxy)

    一.概述 Proxy模式又叫做代理模式,是构造型的设计模式之一,它可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问. 可以详细控制访问某个类或对象的方法,在调用这个方法(流程代码放到代理 ...

  4. Spring中好玩的注解和接口

    测试中: 一.unit中集中基本注解,是必须掌握的. @BeforeClass – 表示在类中的任意public static void方法执行之前执行 @AfterClass – 表示在类中的任意p ...

  5. 全面系统Python3入门+进阶-1-7 课程内容与特点

    结束

  6. ES6深入浅出-12 ES6新增的API(下)-1.录屏

    String.includes es5里面判断字符串是否存在的方法 search searcg的厉害之处是可以使用正则 match正则的方式 repeat -1遍,就不合法 startsWith 判断 ...

  7. Apache调优(二)

    Apache调优(一) (1).Apache运行模式说明 Apache目前一共有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式:Prefork(进程模式).Wo ...

  8. Python第一阶段02

    1.模块: import sys print(sys.path) # 打印环境变量 print(sys.argv) # 打印当前文件绝对路径 # print(sys.argv[]) import os ...

  9. HTML布局水平导航条1制作

    该文是用css制作个导航条,用竖线分隔,导航条是点击的多个区块.步骤:ul里设置需要数量的li,li中加上a链接给ul加样式,去掉默认的前面的点给li设置左浮动,让ul里的li横向排列a链接设置成块状 ...

  10. MockMvc 进行 controller层单元测试 事务自动回滚 完整实例

    package com.ieou.ms_backend.controller; import com.google.gson.Gson; import com.ieou.ms_backend.dto. ...