做项目的时候看了别人的blog,决定自己也随手记录下在做项目中遇到的好的小知识点。

最近在做Udacity的Data Scientist Nano Degree Project的Customer_Segements 项目,随手记录下感觉一些挺好用的自己没注意到小细节

- 从文本中读取指定的行:

def loadDataSet(fileName, splitChar='\t'):
"""
输入:文件名
输出:数据集
描述:从文件读入数据集
"""
dataSet = []
with open(fileName) as fr:
for line in fr.readlines()[6:]:
curline = line.strip().split(splitChar)#字符串方法strip():返回去除两侧(不包括)内部空格的字符串;字符串方法spilt:按照制定的字符将字符串分割成序列
fltline = list(map(float, curline))#list函数将其他类型的序列转换成字符串;map函数将序列curline中的每个元素都转为浮点型
dataSet.append(fltline)
return dataSet

- python的方法统计列表中不同元素的数量

  list_len = len(set('list')) #用set的方法

- 统计DataFrame中每行的缺失值:

  missing_value_in_row = df.shape[1] - df.counts(axis = 1)

  missing_value_in_col = df.shape[o] - df.counts(axis = 0)

- 通过布尔索引获取DataFrame的相应索引并转化为list(便于用来遍历):

  names = list(df[df['counts'] <= 73500].index)

- 几种遍历DataFrame的方法:

  iterrows:

for name, row in df.iterrows():
print("Row{} of df is{}".format(name, row))

  iteritems:

for name, col in df.iteritems():
print("col{} of df is {}".format(name, col))

  itertuple:

  同时回顾一下类似的enumerate()可用来遍历list:

my_list = ['apple', 'banana', 'grapes', 'pear']
for c, value in enumerate(my_list, 1):
print(c, value) # Output:
# 1 apple
# 2 banana
# 3 grapes
# 4 pear

- pandas 在数据清洗时候常用的两个函数:

  对于字符串类型的筛选常用的是 pd.str.contains()这个是类似于SQL中的LIKE操作

  对于一般的布尔索引常用的是 pd.isin()

- pandas中的数据类型转化:

  Series -> array

df[name].values

  Series -> list

df[name].to_list()

  Series-> str

df[name].astpye(str)

- pandas 在数据编码或者转换的时候,建立创建字典,便于使用map来进行映射转换。

- 注意复习正则表达式,清洗数据很有用!

-关于Feature Transformation:

  OneHotEncoder() 接受的输入是 2-D array 维度不符合的可以通过 .reshape(-1, 1)转换

  LaBelBinarizer() 接受的输入是1-D array

  同时值得注意的是df.column返回的是1-D,而df['column']返回的事2-D (以前一直没注意)

- pandas中处理缺失值的神器:

  imputer() 只能接受2-D输入,返回的是array(这是sklearn的)

  pd.fillna()

- 对于Kmeans模型返回的score的解释

  score是kmeans聚类后每个类内的距离之和,我们可以把这个score画出来用elbow method来寻找最佳k值

记录一下我做Udacity 的Data Scientist Nano Degree Project的更多相关文章

  1. 现在很火的数据科学到底是什么?你对做DATA SCIENTIST感兴趣吗?

    转自– Warald (Email: iamxiaoning@gmail.com) 博客: http://www.1point3acres.com,微博:http://www.weibo.com/wa ...

  2. WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作)

    WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作) 好吧,还是那个社区APP,非管理系统,用户行为日志感觉不是很必要的,但是,错误日 ...

  3. 数据分析师(Data Analyst),数据工程师(Data Engineer),数据科学家(Data Scientist)的区别

    数据分析师(Data Analyst):负责从数据中提取出有用的信息,以帮助公司形成业务决策.工作内容包括:对数据进行提取,清洗,分析(用描述统计量,趋势分析,多维度分析,假设检验等统计常用方法对数据 ...

  4. 数据科学工作者(Data Scientist) 的日常工作内容包括什么

    数据科学工作者(Data Scientist) 的日常工作内容包括什么 众所周知,数据科学是这几年才火起来的概念,而应运而生的数据科学家(data scientist)明显缺乏清晰的录取标准和工作内容 ...

  5. Becoming a Data Scientist – Curriculum via Metromap

    From: http://nirvacana.com/thoughts/becoming-a-data-scientist/ Data Science, Machine Learning, Big D ...

  6. What do data scientist do?

    What do data scientist do? 1. Define the question 2.Define the ideal data set 3.Determine what data ...

  7. .NET WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作)

    好吧,还是那个社区APP,非管理系统,用户行为日志感觉不是很必要的,但是,错误日志咱还是得记录则个.总不能上线后报bug了让自己手足无措吧,虽然不管有木有错误日志报bug都是件很头疼的事... 我们知 ...

  8. 微软职位内部推荐-Senior Data Scientist

    微软近期Open的职位: Extracting accurate, insightful and actionable information from data is part art and pa ...

  9. 微软职位内部推荐-Data Scientist

    微软近期Open的职位: Job Description:Extracting accurate, insightful and actionable information from data is ...

随机推荐

  1. JavaScript面向对象之对象的声明、遍历和存储

    一.对象的声明方式 1. 字面式(json格式)声明对象 var obj={ 属性名:属性值, 方法名:function(){ //函数执行体 } } 2. new 操作符+Object 声明对象 v ...

  2. 搭建minima主题的github博客网站

    layout: post title: "搭建minima主题的github博客网站" date: 2019-04-20 19:20:20 +0800 --- 作者:吴甜甜 个人博 ...

  3. Arrays工具类常用方法演示

    java.util.Arrays是JDK中操作数组的工具类,包含了用来操作数组(比如排序和搜索)的各种方法. 下面我们以int类型数组为例,学习下常用的方法,其他类型数组都差不多. 1.equals( ...

  4. 并发编程-concurrent指南-ConcurrentMap

    ConcurrentMap 是个接口,你想要使用它的话就得使用它的实现类之一. ConcurrentMap,它是一个接口,是一个能够支持并发访问的java.util.map集合: 在原有java.ut ...

  5. Hive入门(三)分桶

    1 什么是分桶 上一篇说到了分区,分区中的数据可以被进一步拆分成桶,bucket.不同于分区对列直接进行拆分,桶往往使用列的哈希值进行数据采样.在分区数量过于庞大以至于可能导致文件系统崩溃时,建议使用 ...

  6. django基础知识之定义视图:

    定义视图 本质就是一个函数 视图的参数 一个HttpRequest实例 通过正则表达式组获取的位置参数 通过正则表达式组获得的关键字参数 在应用目录下默认有views.py文件,一般视图都定义在这个文 ...

  7. 关系型数据库MySql 数据类型与约束

    MySql数据库 :数据类型与约束 注意 :  在创建数据表的时候,需要对数据表中的字段设置 数据类型和约束, 便于检测用户输入的数据是否正确有效. 1 数据类型 数据类型的选用原则 : 够用就行,尽 ...

  8. 完全平方数(C语言实现)

    一.题目 一个整数,它加上100后是一个完全平方数请问该数是多少? 二.程序分析 1.题目中没有限定这个整数的范围,因此,可以在代码中#define scope 10000,即使用scope变量定义一 ...

  9. MyBatis从入门到精通:第一章数据库创建文件

    /*创建数据库mybatis,并指定编码方式为utf8,字符比较规则为utf8_general_ci*/ CREATE DATABASE mybatis DEFAULT CHARACTER SET u ...

  10. I/O:ByteBuffer

    ByteBuffer: static ByteBuffer allocate(int capacity) :分配一个新的字节缓冲区. static ByteBuffer allocateDirect( ...