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

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

    这个时候就要进行数据的处理(比如:预测性别,特征出生年月,的影响就会很低,这里就要减少这一特征的权重,或者删除。再比如:预测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. C# Area 双重路由

    在WebApi项目里面 一般除了接口, 还有管理端...一些乱七八糟的,你想展示的东西, 一种做法是分开写: 比如管理后台一个项目, 然后接口一个, 然后页面一个, 其实这样做也可以,但是这么做, 无 ...

  2. FFmpeg 参数详解(二)

    https://blog.csdn.net/yizhizouxiaqu/article/details/52233673 5.参数选项 如果没有特殊声明,所有的数字参数都以一个字符串代表数字的形式作为 ...

  3. Vue事件 定义方法执行方法 获取数据 改变数据 执行方法传值 以及事件对象

    <template> <div id="app"> <!-- <img v-bind:src='url' /> <img :src= ...

  4. typeScript模块<二>

    /*模块 1 模块的的概念 2 模块导出的几种方法 1.export 导出声明 2.export 导出语句 3.export default 4.import导入模块 3 模块化封装上一讲的DB库 * ...

  5. Python3基础 complex 声明复数

             Python : 3.7.3          OS : Ubuntu 18.04.2 LTS         IDE : pycharm-community-2019.1.3    ...

  6. pcm、wav、amr说明

    wav比pcm多44个字节(在文件头位置多)

  7. AI佳作解读系列(六) - 生成对抗网络(GAN)综述精华

    注:本文来自机器之心的PaperWeekly系列:万字综述之生成对抗网络(GAN),如有侵权,请联系删除,谢谢! 前阵子学习 GAN 的过程发现现在的 GAN 综述文章大都是 2016 年 Ian G ...

  8. 条件概率和链式法则 conditional probability & chain rule

    顾名思义, 条件概率指的是某个事件在给定其他条件时发生的概率, 这个非常符合人的认知:我们通常就是在已知一定的信息(条件)情况下, 去估计某个事件可能发生的概率. 概率论中,用 | 表示条件, 条件概 ...

  9. HTML布局排版2 div的和图片平铺方便管理

    在HTML里,由于浏览器显示器等差异,浏览器的宽度也会有变化,为了适应不同的宽度,需要用到平铺.例如页面前面的固定的条等,如果是纯色,可以用背景色,如果不是纯色,是渐变等,可以用条状图平铺.常见的布局 ...

  10. Jetty的安装和配置

    Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境.Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布.开发人员可以将 ...