做项目的时候看了别人的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. 基于modelform和ajax的注册

    forms文件 创建ModelForm组件 from django import forms from crm import models from django.core.exceptions im ...

  2. 一、JavaScript概述

    1.Javascript是什么?可以做什么? 1)    JavaScript是一种基于对象和事件驱动的解释性脚本语言, 它具有与Java和C语言类似的语法. 2)    JavaScript可直接嵌 ...

  3. http接口测试和使用,首先要了解什么是http请求

    http接口测试和使用,首先要了解什么是http请求: http请求通俗讲就是把客户端的东西通过http协议发送到服务端,服务端根据http协议的定义解析客户端发过 来的东西! http请求中常用到的 ...

  4. 多线程总结-同步之synchronized关键字

    目录 1.为什么要使用synchronized? 2.synchronized锁什么,加锁的目的是什么? 3.代码示例 3.1锁this和临界资源对象 3.2锁class类对象 3.3 什么时候锁临界 ...

  5. DRF + react 实现TodoList

    在web项目构建中有很多框架可供选择,开发人员对项目的使用选择,有很多的影响因素,其中之一就是框架在定义该项目的单独任务时的复杂性. 简介 本文有如下几个部分: 准备 配置后端 配置APIs 配置前端 ...

  6. 掌握简单的Makefile文件编程

    Makefile描述整个程序的编译.链接规则 其中还包括了工程中用到的那些源文件及需要产生的目标文件 1)Makefile编程规则 目标(唯一):依赖(可多个) 命令... 伪目标 .PHONY:cl ...

  7. 程序员到sql笔记

    1最近准备面试,总结一下之前学过到东西.

  8. 洛谷P1396 营救 题解

    题目:https://www.luogu.org/problemnew/show/P1396 分析: 这其实一看就是一个最短路的近似模板的题目,但我们要注意到两个区之间可能会有多条道路,所以说我们只需 ...

  9. Android学习总结之开发工具AndroidStudio的安装与配置

    安装AndroidStudio 首先下载AndroidStudio的安装包,直接在百度AndroidStudio下载即可,安装过程简单,只需要修改安装路径(不要有空格和中文即可).然后下一步下一步就可 ...

  10. [leetcode] 300. Longest Increasing Subsequence (Medium)

    题意: 求最长增长的子序列的长度. 思路: 利用DP存取以i作为最大点的子序列长度. Runtime: 20 ms, faster than 35.21% of C++ online submissi ...