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

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

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

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

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

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

    1)数据合并

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

    2)过滤特征

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

    3)新增删除特征

    # 转换时间
time_value = pandas.to_datetime(train_data["time"], unit="s")
# 转换成字典
time_value = pandas.DatetimeIndex(time_value)
# print(time_value) # 构造特征
data = train_data.copy()
data["day"] = time_value.day
data["hour"] = time_value.hour
data["weekday"] = time_value.weekday
# print(train_data.head(10)) # 删除影响特征的数据,axis为1纵向删除
data = data.drop(["time"], axis=1) # 转换时间
time_value = pandas.to_datetime(train_data["time"], unit="s")
# 转换成字典
time_value = pandas.DatetimeIndex(time_value)
# print(time_value) # 构造特征
data = train_data.copy()
data["day"] = time_value.day
data["hour"] = time_value.hour
data["weekday"] = time_value.weekday
# print(train_data.head(10)) # 删除影响特征的数据,axis为1纵向删除
data = data.drop(["time"], axis=1) # 删除小于目标值的数据
place_count = data.groupby("place_id").count()
# print(place_count)
# 过滤数量大于5的地点ID,并且加入列中
tf = place_count[place_count.x > 5].reset_index()
# print(tf)
data = data[data["place_id"].isin(tf.place_id)] # 取特征值和目标值
y = data["place_id"]
x = data.drop(["place_id", "row_id"], axis=1)

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

   # 数据分割
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. OpenGL ES: (4) EGL API详解 (转)

    上一节我们初步学习了 OpenGL ES.EGL.GLSL 的相关概念,了解了它们的功能,以及它们之间的关联.我们知道了 EGL 是绘制 API(比如 OpenGL ES)与 底层平台窗口系统之间的接 ...

  2. nginx: [emerg] open() "/var/run/nginx.pid" failed (13: Permission denied)

    现象 1.centos6.9 用rpm包安装nginx 2.修改Nginx的多个配置文件和配置项 3.service nginx restart 报错: nginx: [emerg] open() & ...

  3. linux都有哪些运行级别?

    答: 一共有七种运行级别,如下: 0 – System halt i.e the system can be safely powered off with no activity. 1 – Sing ...

  4. flutter中使用shared_preferences的存储

    添加依赖 shared_preferences: ^+ 工具类 import 'dart:async'; import 'package:shared_preferences/shared_prefe ...

  5. C++ 11 线程调用类的成员函数解决办法

    在C++中,_beginthreadex 创建线程是很麻烦的.要求入口函数必须是类的静态函数. 通常,可以采用thunk,或者模板来实现. 因C++ 11中引入了 std::async ,可以很好的解 ...

  6. 为什么static成员必须在类外初始化,而不能在类的头文件中初始化

    为什么static成员必须在类外初始化 为什么静态成员不能在类内初始化 在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样.   class A { pri ...

  7. [转]3D渲染管线

    转自:http://tgerm.org/SRP/ 在3D中有两种渲染管线,分别是图形渲染管线和GPU渲染管线. 图形渲染管线 <Render-Time Rendering Third Editi ...

  8. MongoDB数据表添加字段

    db.tshare_a.insert( { "_id" : ObjectId("57172b0f657f8bbb34d70147"), "picUrl ...

  9. vs Qt mysql 打包程序 Driver not loaded Driver not loaded

    vs下开发Qt连接mysql程序,开发过程中操作MySQL没有问题,但打包以后安装在别的电脑上发现竟然无法连接MySQL,打包的时候,所需的libmysql.dll等dll文件拷贝到exe同级目录了, ...

  10. Java EE互联网轻量级框架整合开发— SSM框架(中文版带书签)、原书代码

    Java EE互联网轻量级框架整合开发 第1部分 入门和技术基础 第1章 认识SSM框架和Redis 2 1.1 Spring框架 2 1.2 MyBatis简介 6 1.3 Spring MVC简介 ...