对阿里离线赛的数据用python进行简单的预处理
来源:互联网 发布:赵薇阿里影业 知乎 编辑:程序博客网 时间:2024/06/16 12:36
数据预处理
对阿里离线赛的数据用python进行预处理,
参考文章http://www.wyblog.cn/2016/12/16/%e5%a4%a9%e6%b1%a0%e4%bd%93%e9%aa%8c%e4%ba%8c-%e6%96%b0%e4%ba%ba%e7%a6%bb%e7%ba%bf%e8%b5%9b%e6%95%b0%e6%8d%ae%e5%8f%af%e8%a7%86%e5%8c%96%e5%88%86%e6%9e%90/
源数据为天池新人实战赛之[离线赛]的数据
tianchi_fresh_comp_train_user.csv
大概有1G那么大,处理为标准数据后后有1.3G,我是加了1个4G的内存条之后才能处理的
hadoop@master:/media/hadoop/娱乐/1离线赛/原始数据$ head -n 10 '/media/hadoop/娱 乐/1离线赛/原始数据/tianchi_fresh_comp_train_user (复件).csv' user_id,item_id,behavior_type,user_geohash,item_category,time10001082,285259775,1,97lk14c,4076,2014-12-08 1810001082,4368907,1,,5503,2014-12-12 1210001082,4368907,1,,5503,2014-12-12 1210001082,53616768,1,,9762,2014-12-02 1510001082,151466952,1,,5232,2014-12-12 1110001082,53616768,4,,9762,2014-12-02 1510001082,290088061,1,,5503,2014-12-12 1210001082,298397524,1,,10894,2014-12-12 1210001082,32104252,1,,6513,2014-12-12 12hadoop@master:/media/hadoop/娱乐/1离线赛/原始数据$
##导入包import pandas as pdimport numpy as np##读入数据user_df = pd.read_csv('/media/hadoop/娱乐/1离线赛/原始数据/tianchi_fresh_comp_train_user (复件).csv')##定义由time属性得到day和hour属性的函数def get_date(time): date,hour = time.split(" ") return datedef get_hour(time): date,hour = time.split(" ") return hour##用map()函数得到date和hour字段,利用pandas的to_datetime()date转换为datetime类型,user_df['date'] = user_df['time'].map(get_date)user_df['date'] = pd.to_datetime(user_df['date'])##并用astype()将hour转换为intuser_df['hour'] = user_df['time'].map(get_hour)user_df['hour'] = user_df['hour'].astype(int)##用pandas的get_dummies()对behavoir_type进行独热编码,生成#对behavior使用独热编码,方便后面的统计和使用#pandas的get_dummies方法可以将一个类似枚举的属性自动生成独热编码生成DataFramebehavior_type_dummies = pd.get_dummies(user_df['behavior_type'])##并为它的列命名behavior_type_dummies.columns = ['view','favor','cart','buy']##删除user_df中的无用字段,axis=1指定按列删除user_df.drop(['behavior_type','time','user_geohash'],axis=1,inplace=True)##用user_df和behavior_type_dummies二者join生成新的user_df就是想要的数据形式了user_df = user_df.join(behavior_type_dummies)##将生成的user_df存储到本地user_df.to_csv('/media/hadoop/娱乐/1离线赛/原始数据/user_df.csv')
可以看看生成的beahvior_type_dummies和user_df
behavior_type_dummies.head() view favor cart buy0 1 0 0 01 1 0 0 02 1 0 0 03 1 0 0 04 1 0 0 0user_df.head() user_id item_id item_category date hour view favor cart buy0 10001082 285259775 4076 2014-12-08 18 1 0 0 01 10001082 4368907 5503 2014-12-12 12 1 0 0 02 10001082 4368907 5503 2014-12-12 12 1 0 0 03 10001082 53616768 9762 2014-12-02 15 1 0 0 04 10001082 151466952 5232 2014-12-12 11 1 0 0 0
0 0
- 对阿里离线赛的数据用python进行简单的预处理
- ajax的简单应用:对表单进行预处理
- 利用Matlab对图像进行简单的预处理
- 利用Python Pandas进行数据预处理-Pandas基本的数据结构
- 数据预处理的python实现
- 用python对文本格式的数据进行统计处理
- python:正确的对未知编码的字符串进行预处理-Unicode-UTF8-gbk
- python . 数据分析1 数据的预处理
- 用Python进行数据挖掘(数据预处理)
- dojo小例子(14)对提供给grid显示的数据进行预处理
- 对图像数据进行预处理时遇到的若干问题(1)
- 对图像数据进行预处理时遇到的若干问题(2)
- scikit-learn的4.3对数据预处理
- 从零开始天池新人离线赛-数据预处理
- 如何对建模型数据进行预处理
- 如何对建模型数据进行预处理
- python中常见的数据预处理方法
- 一个简单对 数据进行加密 的Java类
- C++与Java区别
- String常用方法汇总
- git 回滚到指定的版本
- python循环引用的解决办法
- 我的第一篇博客
- 对阿里离线赛的数据用python进行简单的预处理
- mysql 开通远程访问权限
- 【IMWeb训练营作业】之小组作业 web版豆瓣app
- 分区表,管理表
- Java正则表达式
- IIntelliJ IDEA 与 Gradle
- Composer
- mac下配置nginx
- IDEA引入外部jar包的方法