做项目的时候看了别人的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. 一套简单的web即时通讯——第一版

    前言 我们之前已经实现了 WebSocket+Java 私聊.群聊实例,后面我们模仿layer弹窗,封装了一个自己的web弹窗 自定义web弹窗/层:简易风格的msg与可拖放的dialog,生成博客园 ...

  2. 生产追溯系统-Raspberry Pi帮助我们节省大量硬件成本,助力信息化建设

    初识 Raspberry Pi 竟然有这么小的电脑主机?只有手掌这么大?电源线竟然跟手机数据线一样?当我第一次看到Raspberry Pi的时候,在脑海中产生了一连串的疑问,带着这些疑问逐渐开始研究这 ...

  3. CodeForces 696A:Lorenzo Von Matterhorn(map的用法)

    http://codeforces.com/contest/697/problem/C C. Lorenzo Von Matterhorn time limit per test 1 second m ...

  4. UAVStack的慢SQL数据库监控功能及其实现

    UAVStack是一个全维监控与应用运维平台.UAV.Monitor具备监控功能,包含基础监控.应用/服务性能监控.日志监控.业务监控等.在应用监控中,UAV可以根据应用实例画像:其中应用实例组件可以 ...

  5. 【深入浅出-JVM】(4):编译 jdk

    环境 mac,xcode,jdk8,openjdk,autoconf 步骤 安装autoconf brew install autoconf 下载openjdk源码 git clone https:/ ...

  6. SpringBoot第二十一篇:整合ActiveMQ

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11190048.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   前一章节中 ...

  7. spring mvc重定向问题

    在页面提交时中,路径应该使用“/默认上下文/controller路径”,在controller重定向中,应该使用“/controller路径”,不加上下文.

  8. jira设置问题关闭之后不能继续编辑和添加备注

    设置工作流中的Closed步骤的工作流属性值,增加两个: jira.permission.comment.user:(空) jira.issue.editable:false Closed这个步骤之后 ...

  9. 数据结构-树以及深度、广度优先遍历(递归和非递归,python实现)

    前面我们介绍了队列.堆栈.链表,你亲自动手实践了吗?今天我们来到了树的部分,树在数据结构中是非常重要的一部分,树的应用有很多很多,树的种类也有很多很多,今天我们就先来创建一个普通的树.其他各种各样的树 ...

  10. TF项目实战(基于SSD目标检测)——人脸检测1

    SSD实战——人脸检测 Tensorflow 一 .人脸检测的困难: 1. 姿态问题 2.不同种族人, 3.光照 遮挡 带眼睛 4.视角不同 5. 不同尺度 二. 数据集介绍以及转化VOC: 1. F ...