20150926kaggle Titanic入门篇excel&python
1 excel数据透视表
这里主要是讲述了一下插入里面的数据透视表常用功能,数据透视表十分方便,比直接筛选还要简单,看数据很直观,这里大力推荐。
2 python&pandas
这里主要是讲述了pandas的一些基本用法,直接上代码吧。
2.1 pandas dataframe
文章所述pandas和R语言一样有dataframe,对于分析处理数据十分方便。
import pandas as pd
import numpy as np
##pandas自带读入csv的函数
df = pd.read_csv('train.csv', header=0)
print df
##查看数据前3行
print df.head(3)
##df类型为pandas.core.frame.DataFrame
print type(df)
##打印df各列数据类型
print df.dtypes
##打印df各列数据详细情况
print df.info()
##打印各列数据总数,均值,方差,最小值等等
print df.describe()
2.2 数据处理
print df['Age'][0:10]
print type(df['Age'])
print df['Age'].mean()
##以下是df里面筛选数据的各种用法
print df[ ['Sex', 'Pclass', 'Age'] ]
print df[df['Age'] > 60]
print df[df['Age'] > 60][['Sex', 'Pclass', 'Age', 'Survived']]
print df[df['Age'].isnull()][['Sex', 'Pclass', 'Age']]
for i in range(1,4):
print i, len(df[ (df['Sex'] == 'male') & (df['Pclass'] == i) ])
import pylab as P
df['Age'].hist()
P.show()
df['Age'].dropna().hist(bins=16, range=(0,80), alpha = .5)
P.show()
2.3清洗数据
##给df增添一列数据,并赋值
df['Gender'] = 4
df['Gender'] = df['Sex'].map( lambda x: x[0].upper() )
df['Gender'] = df['Sex'].map( {'female': 0, 'male': 1} ).astype(int)
##求出满足df['Gender'] == i) & (df['Pclass'] == j+1)的各列数据去掉null后的均值,然后用其填充数据
median_ages = np.zeros((2,3))
for i in range(0, 2):
for j in range(0, 3):
median_ages[i,j] = df[(df['Gender'] == i) & (df['Pclass'] == j+1)]['Age'].dropna().median()
df['AgeFill'] = df['Age']
print df.head()
print df[ df['Age'].isnull() ][['Gender','Pclass','Age','AgeFill']].head(10)
for i in range(0, 2):
for j in range(0, 3):
df.loc[ (df.Age.isnull()) & (df.Gender == i) & (df.Pclass == j+1),'AgeFill'] = median_ages[i,j]
print df[ df['Age'].isnull() ][['Gender','Pclass','Age','AgeFill']].head(10)
df['AgeIsNull'] = pd.isnull(df.Age).astype(int)
2.4特征工程
##有各种特征构造的方法,举例两种
df['FamilySize'] = df['SibSp'] + df['Parch']
df['Age*Class'] = df.AgeFill * df.Pclass
2.5最后准备
##删除类型为object的列数据
print df.dtypes
print df.dtypes[df.dtypes.map(lambda x: x=='object')]
df = df.drop(['Name', 'Sex', 'Ticket', 'Cabin', 'Embarked'], axis=1)
##删除Age这一列数据
df = df.drop(['Age'], axis=1)
##去掉有null的数据
df = df.dropna()
##返回一个数组格式给train_data
train_data = df.values
2.6随机森林
##使用sklearn里面的随机森林算法包
from sklearn.ensemble import RandomForestClassifier
forest = RandomForestClassifier(n_estimators = 100)
forest = forest.fit(train_data[0::,1::],train_data[0::,0])
output = forest.predict(test_data)
20150926kaggle Titanic入门篇excel&python的更多相关文章
- python学习之路入门篇
本文是up学习python过程中遇到的一些问题及总结归纳,本小节是入门篇. python基本语法 循环.分支不多赘述. 模块:一个.py文件就是一个模块. 文件和异常 模式 含义解释 “r” 读模式 ...
- Python网络爬虫入门篇
1. 预备知识 学习者需要预先掌握Python的数字类型.字符串类型.分支.循环.函数.列表类型.字典类型.文件和第三方库使用等概念和编程方法. 2. Python爬虫基本流程 a. 发送请求 使用 ...
- Python打开新世界的大门-入门篇1
目录 题记 Python技巧.避坑及心得 八种数据类型 循环 函数 Homework 题外话 之前没有写博客的习惯,现在开始写觉得入门也太晚了吧,看看同龄的大哥都写了十几万字.于是 ...
- 《python开发技术详解》|百度网盘免费下载|Python开发入门篇
<python开发技术详解>|百度网盘免费下载|Python开发入门篇 提取码:2sby 内容简介 Python是目前最流行的动态脚本语言之一.本书共27章,由浅入深.全面系统地介绍了利 ...
- 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV
这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
始终无法有效把word排版好的粘贴过来,排版更佳版本请见知乎文章: https://zhuanlan.zhihu.com/p/24309547 实在搞不定博客园的排版,排版更佳的版本在: 给深度学习入 ...
- Python系列之入门篇——HDFS
Python系列之入门篇--HDFS 简介 HDFS (Hadoop Distributed File System) Hadoop分布式文件系统,具有高容错性,适合部署在廉价的机器上.Python ...
- Python系列之入门篇——MYSQL
Python系列之入门篇--MYSQL 简介 python提供了两种mysql api, 一是MySQL-python(不支持python3),二是PyMYSQL(支持python2和python3) ...
- python入门篇
第一篇:python入门 第二篇:数据类型.字符编码.文件处理 第三篇:函数 第四篇:模块与包 第五篇:常用模块 第六篇:面向对象 第七篇:面向对象高级 第八篇:异常处理 第九篇:网络编程 第十篇:并 ...
随机推荐
- [POJ1159]Palindrome(dp,滚动数组)
题目链接:http://poj.org/problem?id=1159 题意:求一个字符串加多少个字符,可以变成一个回文串.把这个字符串倒过来存一遍,求这两个字符串的lcs,用原长减去lcs就行.这题 ...
- leetcode:Intersection of Two Linked Lists(两个链表的交叉点)
Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...
- 《OD学oozie》20160813
一.日志收集项目案例 1. oozie中依赖jar包 在工作目录下创建lib目录,上传依赖包的lib目录下 2. 作业 将日志收集与处理项目案例使用oozie的workflow执行 3. coordi ...
- JSON 之 SuperObject(10): Merge、Clone、ForcePath
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...
- jquery ajax的async属性的理解
$(function(){ queryTemplateSort(); // fillAddTemplatePage(); function queryTemplateSort() { $.ajax({ ...
- UVa 11039 (排序+贪心) Building designing
白书上的例题比较难,认真理解样例代码有助于提高自己 后面的练习题相对简单,独立思考解决问题,增强信心 题意:n个绝对值各不相同的非0整数,选出尽量多的数排成序列,使得该序列正负交错且绝对值递增. 解法 ...
- poj 1195 mobile phone
题目连接: 题意:要求设计这样一个数据结构,支持下列操作 1.add(x,y,a).对二维数组的第x行,第y列加上a. 2.sum(l,b,r,t).求所有满足l<=x<=r,b<= ...
- Asp.Net保存session的三种方法
C#中保存Session的三种方法及Web.Config设置 1.保存session到sql server,需要指定Sql Server服务器,这种方法因为要读写数据库最慢 <sessionSt ...
- ajax连接数据库并操作数据库
Response.Write("<script type='text/javascript' language='javascript' >alert('用户名不能为空!请输入 ...
- mongodb用户授权
1)登录admin 数据库,admin是隐藏的数据库,为mongodb的超级管理员数据表mongo admin新建用户db.createUser({'user':'test','pwd':'12345 ...