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

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

    这个时候就要进行数据的处理(比如:预测性别,特征出生年月,的影响就会很低,这里就要减少这一特征的权重,或者删除。再比如:预测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. Vue-CLI 标准开发工具-快速准备环境和创建项目

    https://cli.vuejs.org/zh/ 淘宝镜像安装: npm install -g cnpm --registry=https://registry.npm.taobao.org 2.x ...

  2. Centos7迁移fastdfs文件系统

    系统从一个地方迁移到另一个地方,数据保持不变,但是ip地址和网络情况不一样了,最困难的是要迁移的那个地方还么有互联网,这TM就坑了,所以想到将FastDFS存储的目录整体拷贝过去,这个方法简单粗暴,这 ...

  3. Java基础 switch 表达式为字符串

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  4. 下周文件ie 谷歌兼容性处理

    https://blog.csdn.net/u014628388/article/details/81738704 问题描述window.URL.createObjectURL()可以直接生成blob ...

  5. Windows下MariaDB数据库安装图文教程

    MariaDB是基于MySQL的开源数据库,兼容MySQL,现有的MySQL数据库可以迁移到MariaDB中使用   说明: MariaDB是基于MySQL的开源数据库,兼容MySQL,现有的MySQ ...

  6. python基础教程项目五之虚拟茶话会

    python基础教程项目五之虚拟茶话会 几乎在学习.使用任何一种编程语言的时候,关于socket的练习从来都不会少,尤其是会写一些局域网的通信的东西.所以书上的这个项目刚好可以练习一下socket编程 ...

  7. angular2 select 联动

    界面操作触发大分类id改变,根据id获取二级分类的数据进行绑定显示. html: <div style="overflow: hidden;float: left;padding-le ...

  8. selenium3+Python3+sublime text3自动化登录

    前言: 对于初学者来说,python自带的IDLE,精简又方便,不过一个好的编辑器能让python编码变得更方便,更加优美些. 不过呢,也可以自己去下载其他更好用的代码编辑器,在这推荐: PyChar ...

  9. Nginx虚拟目录(alias)和根目录(root)

    功能要求: 假设nginx配置的域名是www.kazihuo.com,现有静态资源/home/www/oye目录需要通过nginx访问. 功能实现: 前提要求: 1.在nginx.conf中到处第二行 ...

  10. 为做个程序员英语字典,我处理了StackOverflow和HackerNews10年5千万条数据

    有点标题党,不过都说都真实的.英语技能对开发员人员至关重要.所有人都不喜欢背单词,但更惨的是背住的单词发现没怎么用,又慢慢地忘记了.本来计划给自己做个开发人员常用单词表,感觉可能对其它人也有用,所以就 ...