美文网首页我爱编程
【Titanic】-预处理基础之Pandas

【Titanic】-预处理基础之Pandas

作者: hikonga | 来源:发表于2017-03-15 17:11 被阅读0次

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/

相关文章

网友评论

    本文标题:【Titanic】-预处理基础之Pandas

    本文链接:https://www.haomeiwen.com/subject/quibdttx.html