圆月山庄资源网 Design By www.vgjia.com
参加kaggle数据挖掘比赛,就第一个赛题Titanic的数据,学习相关数据预处理以及模型建立,本博客关注基于pandas进行数据预处理过程。包括数据统计、数据离散化、数据关联性分析
引入包和加载数据
import pandas as pd import numpy as np train_df =pd.read_csv('../datas/train.csv') # train set test_df = pd.read_csv('../datas/test.csv') # test set combine = [train_df, test_df]
清洗数据
查看数据维度以及类型
缺失值处理
查看object数据统计信息
数值属性离散化
计算特征与target属性之间关系
查看数据维度以及类型
#查看前五条数据 print train_df.head(5) #查看每列数据类型以及nan情况 print train_df.info() # 获得所有object属性 print train_data.describe(include=['O']).columns
查看object数据统计信息
#查看连续数值属性基本统计情况 print train_df.describe() #查看object属性数据统计情况 print train_df.describe(include=['O']) # 统计Title单列各个元素对应的个数 print train_df['Title'].value_counts() # 属性列删除 train_df = train_df.drop(['Name', 'PassengerId'], axis=1)
缺失值处理
# 直接丢弃缺失数据列的行 print df4.dropna(axis=0,subset=['col1']) # 丢弃nan的行,subset指定查看哪几列 print df4.dropna(axis=1) # 丢弃nan的列 # 采用其他值填充 dataset['Cabin'] = dataset['Cabin'].fillna('U') dataset['Title'] = dataset['Title'].fillna(0) # 采用出现最频繁的值填充 freq_port = train_df.Embarked.dropna().mode()[0] dataset['Embarked'] = dataset['Embarked'].fillna(freq_port) # 采用中位数或者平均数填充 test_df['Fare'].fillna(test_df['Fare'].dropna().median(), inplace=True) test_df['Fare'].fillna(test_df['Fare'].dropna().mean(), inplace=True)
数值属性离散化,object属性数值化
# 创造一个新列,FareBand,将连续属性Fare切分成四份 train_df['FareBand'] = pd.qcut(train_df['Fare'], 4) # 查看切分后的属性与target属性Survive的关系 train_df[['FareBand', 'Survived']].groupby(['FareBand'], as_index=False).mean().sort_values(by='FareBand', ascending=True) # 建立object属性映射字典 title_mapping = {"Mr": 1, "Miss": 2, "Mrs": 3, "Master": 4, "Royalty":5, "Officer": 6} dataset['Title'] = dataset['Title'].map(title_mapping)
计算特征与target属性之间关系
object与连续target属性之间,可以groupby均值
object与离散target属性之间,先将target数值化,然后groupby均值,或者分别条形统计图
连续属性需要先切割然后再进行groupby计算,或者pearson相关系数
print train_df[['AgeBand', 'Survived']].groupby(['AgeBand'], as_index=False).mean().sort_values(by='AgeBand', ascending=True)
总结pandas基本操作
”' 创建df对象 ””' s1 = pd.Series([1,2,3,np.nan,4,5]) s2 = pd.Series([np.nan,1,2,3,4,5]) print s1 dates = pd.date_range(“20130101”,periods=6) print dates df = pd.DataFrame(np.random.rand(6,4),index=dates,columns=list(“ABCD”)) # print df df2 = pd.DataFrame({“A”:1, ‘B':pd.Timestamp(‘20130102'), ‘C':pd.Series(1,index=list(range(4)),dtype='float32'), ‘D':np.array([3]*4,dtype=np.int32), ‘E':pd.Categorical([‘test','train','test','train']), ‘F':'foo' }) # print df2.dtypes
df3 = pd.DataFrame({'col1':s1, 'col2':s2 }) print df3 ''' 2.查看df数据 ''' print df3.head(2) #查看头几条 print df3.tail(3) #查看尾几条 print df.index #查看索引 print df.info() #查看非non数据条数 print type(df.values) #返回二元数组 # print df3.values print df.describe() #对每列数据进行初步的统计 print df3 print df3.sort_values(by=['col1'],axis=0,ascending=True) #按照哪几列排序 ''' 3.选择数据 ''' ser_1 = df3['col1'] print type(ser_1) #pandas.core.series.Series print df3[0:2] #前三行 print df3.loc[df3.index[0]] #通过index来访问 print df3.loc[df3.index[0],['col2']] #通过行index,和列名来唯一确定一个位置 print df3.iloc[1] #通过位置来访问 print df3.iloc[[1,2],1:2] #通过位置来访问 print "===" print df3.loc[:,['col1','col2']].as_matrix() # 返回nunpy二元数组 print type(df3.loc[:,['col1','col2']].as_matrix()) ''' 4.布尔索引,过滤数据 ''' print df3[df3.col1 >2] df4 = df3.copy() df4['col3']=pd.Series(['one','two','two','three','one','two']) print df4 print df4[df4['col3'].isin(['one','two'])] df4.loc[:,'col3']="five" print df4 ''' 5.缺失值处理,pandas将缺失值用nan代替 ''' print pd.isnull(df4) print df4.dropna(axis=0,subset=['col1']) # 丢弃nan的行,subset指定查看哪几列 print df4.dropna(axis=1) # 丢弃nan的列
以上这篇对pandas进行数据预处理的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
标签:
pandas,数据预处理
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年11月07日
2024年11月07日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]