对熊猫进行数据预处理的实例讲解

  

参加kaggle数据挖掘比赛,就第一个赛题泰坦尼克号的数据,学习相关数据预处理以及模型建立,本博客关注基于熊猫进行数据预处理过程。包括数据统计,数据离散化,数据关联性分析

  

        熊猫作为pd导入   进口numpy np   train_df=pd.read_csv(. ./数据/train.csv) #训练集   test_df=pd.read_csv(. ./数据/test.csv) #测试集   结合=[train_df test_df]      

  

查看数据维度以及类型

  

缺失值处理

  

查看对象数据统计信息

  

数值属性离散化

  

计算特征与目标属性之间关系

  

        #查看前五条数据   打印train_df.head (5)   #查看每列数据类型以及南情况   打印train_df.info ()   #获得所有对象属性   打印train_data.describe(包括=[' O ']) .columns      

        #查看连续数值属性基本统计情况   打印train_df.describe ()   #查看对象属性数据统计情况   打印train_df.describe(包括=[' O '])   #统计单标题列各个元素对应的个数   打印train_df['标题'].value_counts ()   #属性列删除   train_df=train_df。下降(['名称',' PassengerId '],轴=1)      

        #直接丢弃缺失数据列的行   打印df4.dropna(轴=0,子集=[' col1 ']) #丢弃nan的行,指子集定查看哪几列   打印df4.dropna(轴=1)#丢弃nan的列   #采用其他值填充   数据集数据集[“小屋”]=[“小屋”].fillna (“U”)   数据集数据集['标题']=['标题'].fillna (0)   #采用出现最频繁的值填充   .mode freq_port=train_df.Embarked.dropna () () [0]   数据集数据集['开始']=['开始'].fillna (freq_port)   #采用中位数或者平均数填充   test_df(“费用”).fillna (test_df(“费用”).dropna () .median(),原地=True)   test_df(“费用”).fillna (test_df(“费用”).dropna () .mean(),原地=True)      

        FareBand #创造一个新列,将连续属性表现切分成四份   train_df [' FareBand ']=pd。qcut (train_df(“费用”),4)   #查看切分后的属性与目标属性生存的关系   train_df [[“FareBand”、“幸存”]]。groupby ([' FareBand '], as_index=False) .mean ()。sort_values (=癋areBand”,提升=True)   #建立对象属性映射字典   title_mapping={“先生”:1、“小姐”:2,“夫人”:3,“大师”:4,“皇室”:5,“官”:6}   数据集数据集['标题']=['标题']. map (title_mapping)      

<强>计算特征与目标属性之间关系

  

对象与连续目标属性之间,可以groupby均值

  

对象与离目标属散性之间,先将目标数值化,然后groupby均值,或者分别条形统计图

  

连续属性需要先切割然后再进行groupby计算,或者皮尔逊相关系数

        打印train_df [[“AgeBand”、“幸存”]]。groupby ([' AgeBand '], as_index=False) .mean ()。sort_values (=癆geBand”,提升=True)      

        “‘   创建df对象   ”“”   s1=pd.Series ([np.nan 1, 2, 3, 4, 5])   s2=pd.Series ([np.nan, 1、2、3、4、5])   打印s1   日期=pd.date_range(“20130101”,时间=6)   打印日期   df=pd.DataFrame (np.random.rand(4),指数=日期列=列表(“ABCD”))   #打印df   df2=pd.DataFrame ({“A”: 1、   B: pd.Timestamp (“20130102”),   “C”: pd.Series(1,指数=列表(范围(4)),dtype=' float32 '),   “D”: np.array ([3] * 4, dtype=np.int32),   “E”: pd.Categorical([‘测试’,‘火车’,‘测试’,‘火车’]),   F:“foo”   })   #打印df2.dtypes            df3=pd.DataFrame ({col1: s1,   “col2”: s2   })   打印df3      “‘   2 .查看df数据   “‘   打印df3.head(2) #查看头几条   打印df3.tail(3) #查看尾几条   打印df。指数#查看索引   打印df.info() #查看非非数据条数   打印类型(df.values) #返回二元数组   #打印df3.values   打印df.describe() #对每列数据进行初步的统计   打印df3   打印df3.sort_values (=[' col1 '],轴=0,提升=True) #按照哪几列排序      “‘   3 .选择数据   “‘   ser_1=df3 (“col1”)   打印类型(ser_1) # pandas.core.series.Series   打印df3[0:2] #前三行   打印df3.loc [df3。指数[0]]#通过指数来访问   打印df3.loc [df3。指数[0],[' col2 ']] #通过行索引和列名来唯一确定一个位置   打印df3。iloc[1] #通过位置来访问   打印df3。iloc[[1,2], 1:2) #通过位置来访问   打印”==="   打印df3.loc [: [‘col1’,‘col2]] .as_matrix() #返回nunpy二元数组   打印类型(df3.loc [: [‘col1’,‘col2]] .as_matrix ())      “‘   4 .布尔索引,过滤数据   “‘   打印df3 [df3。col1祝辞;2)   df4=df3.copy ()   df4 [' col3 ']=pd.Series ([' 1 ', ' 2 ', ' 2 ', ' 3 ', ' 1 ', ' 2 '])   打印df4   打印df4 [df4 [' col3 '] .isin((“一”、“两”)))   df4.loc [: ' col3 ']=?”   打印df4      “‘   5 .缺失值处理,大熊猫将缺失值用南代替   “‘   打印pd.isnull (df4)   打印df4.dropna(轴=0,子集=[' col1 ']) #丢弃nan的行,指子集定查看哪几列   打印df4.dropna(轴=1)#丢弃nan的列

对熊猫进行数据预处理的实例讲解