【Titanic】-预处理基础之Pandas

import pandas as pd #引入pandas

titanic=pd.read_csv('...') #读取csv, titanic为DataFrame

titanic.head() #获取前5行

titanic.shape #DataFrame行和列

titanic.describe()#统计DataFrame每列的count,mean,std,min,25%,50%,75%,max

titanic.info()#统计每列的null/notnull,类型,内存占用

titanic.isnull().sum()#统计每列为空的数量

titanic[titanic['Embarked'].isnull()] #获取Embarked列值为空的所有数据

titanic["Embarked"]=titanic["Embarked"].fillna('C') #Embarked列为空的值都赋为C,然后将新DF的列赋值回去(必须赋值回去,fillna并不改变原来的值,得到的是一个新列)

itanic["Deck"].unique() #获取Deck所有unique后的值

titanic_df=titanic_df.drop(['PassengerId','Name','Ticket'],axis=1)  #drop掉无需的列

titanic_df=titanic_df.join(embark_dummies_titanic) #df之间做join

test_df["Age"] #获取列名为Age的列,为一个Serial

embark_perc=titanic_df[["Embarked","Survived"]].groupby(['Embarked'],as_index=False) #对Embarked列做groupby

average_age_test=test_df["Age"].mean()#均值

std_age_test=test_df["Age"].std()#标准差

count_nan_age_test=test_df["Age"].isnull().sum()#非空之和

titanic_df['Family'].loc[titanic_df['Family']>0]=1  #将family大于0的都置为1

titanic["NameLength"]=titanic["Name"].apply(lambdax:len(x))#对老列进行运行得到新列

person_dummies_titanic=pd.get_dummies(titanic_df['Person'])#对Person列转为One-Hot编码

titanic.corr()["Survived"]#求取titanic各列和Survived列的协方差

titanic[titanic['Embarked'].isnull()]  #获取Embarked所有非空的列

pd.Series([1,3,5,np.nan,6,8])#创建Seriers

pd.date_range('20130101',periods=6) #创建从20130101开始6天,数据类型为DatetimeIndex

pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD')) #创建DF,列为A,B,C,D行为上面创建的时间index

df2.dtypes #获取DF的数据类型

df.tail(3)#获取df最后3行

df.index#获取df的index

df.columns #获取df的列

df.values #获取df的values

df.sort_index(axis=1,ascending=False) #按照轴来排序

df.sort(columns='B') #按照列值排序

df[0:3]  #获取前三行

df['20130102':'20130104'] 获取Index从20130102到20170104

df.loc['20130102':'20130104',['A','B']]  #index从20130102到20170104,,并选择a,b列

df1.dropna(how='any') 删除所有任意有控制的行

排序:

df.sort_values(by='internalReturn', ascending=False) #按照internalReturn列降序排序

df.sort_index(axis=1, ascending=False) # axis代码轴,0代表行,1代码列。这样即是对列之间做排序

df[df.A>0] #选择列A大于0的所有列

f2=df.copy() #拷贝得到一个新的df

df.loc #使用标签选择

df.loc['20130102':'20130104',['A','B']] #选择从20130102到20130104间A,B列数据

df.iloc#使用位置选择

df.iloc[3:5,0:2]  #选择index为3到5直接,列号从0到2之间的数据

赋值

df['F']=s1 #s1为一个Serial,将s1复制到F列

df.at[dates[0],'A'] = 0 #按标签赋值,将第一行,A列元素赋值为0 

df.iat[0,1]=0 #按位置赋值,将0行1,列元素赋值为0




参考http://python.jobbole.com/84416/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,504评论 0 13
  • 探索数据集-泰坦尼克号数据 一、读取数据 import pandas as pdimport numpy as n...
    杨小彤阅读 846评论 0 1
  • 1.故事背景 泰坦尼克号沉船事故是世界上最著名的沉船事故之一。1912年4月15日,在她的处女航期间,泰坦尼克号撞...
    弱碱强酸阅读 2,012评论 0 8
  • 受到numpy100题的启发,我们制作了pandas50题。 Pandas 是基于 NumPy 的一种数据处理工具...
    91160e77b9d6阅读 1,098评论 0 0
  • 对kaggle不做过多介绍 都知道这是一个数据挖掘的圣地,泰坦尼克号事件也不多做介绍,马上进入正题 ...
    披风海胆放阅读 1,235评论 1 4