
大数据和云计算
戴翔的技术博客
高校教师,研究生在读,前端开发工程师,中国计算机学会教育专业委员会委员,优快云程序员研修院讲师,优快云博客专家,创业公司项目经理。江苏省第四届“互联网+”大学生创新创业大赛二等奖获得者,第二届、第三届微信小程序应用开发大赛全国三等奖、华东赛区二等奖项目作者,青年大学习数据分析系统、防艾检测云平台“快乐速检”、锋火云疫情病原体检测移动登记系统、自助提货平台“我要提货”项目负责人。
展开
-
论一个python程序猿的个人修养(一)
零. 写在前面 人生苦短,我用Python。 Python被广泛应用于后端开发、游戏开发、网站开发、科学运算、大数据分析、云计算,图形开发等领域;Python在软件质量控制、提升开发效率、可移植性、组件集成、丰富库支持等各个方面均处于先进地位。在继续本系列教程之前,你应该了解一些基本的计算机编程术语。如果你学习过C,Java等编程语言,将有助于你更快的了解Python编程。一. 关于Py原创 2017-11-17 23:45:37 · 1556 阅读 · 0 评论 -
使用astype实现dataframe字段类型转换
在有些情况下,我们需要在DataFrame类型的数据中通过切片获得我们所需要的数据,然后转换为我们所需要的类型。Dataframe数据类型的转换需要用到astype函数。# encoding: utf-8import pandas as pddf = pd.DataFrame(pd.read_csv('film_log3.csv', sep=';',encoding='utf-8',原创 2018-01-26 19:11:34 · 31511 阅读 · 0 评论 -
Python文件读写打开方式
文件的几种读写形式:w 写式,它是不能读的,如果用w模式打开一个已经存在的文件,会清空以前的文件内容,重新写。w+ 是读写内容,只要沾上w,肯定会清空原来的文件;r 读模式,只能读,不能写,而且文件必须存在,否则报错;r+ 是读写模式,只要沾上r,文件必须存在,否则报错;a 追加模式,也能写,在文件的末尾添加内容,即追加写;rb+、wb+、ab+,这种是二进制模式打开或者读取。原创 2018-01-28 10:11:22 · 811 阅读 · 0 评论 -
python数据清洗之list去空格
定义一个列表,如下: My_list = [“aaa, 1000, we”, “bbb, we, qt”, ” I, love, you”]可见,“1000”、“we”、“qt”、“i”、“love”、“you”前均包含空格,我们要把这些空格去除,也就是说,我们要把这些“脏数据”清洗“干净”。使用for循环My_list 列表,再通过replace()方法替换空格:>>...原创 2018-01-19 16:09:07 · 16941 阅读 · 3 评论 -
使用python去除字符串中的重复值
使用python去除字符串中的重复值:a = raw_input("请输入字符串:")a_1 = ""for i in a: if i not in a_1: a_1 += iprint a_1原创 2018-01-20 16:35:28 · 33794 阅读 · 2 评论 -
搭建hadoop平台时遇到的问题及解决方法
笔者最近在搭建伪分布式hadoop平台的时候,遇到了一些问题,在解决了这些问题之后就将问题及解决方法记录了下来,以供参考。出现的问题1hadoop@daixiang-virtual-machine:/usr/local/hadoop/etc/hadoop$ start-dfs.shIncorrect configuration: namenode address dfs.namenode原创 2018-02-05 08:10:58 · 6083 阅读 · 0 评论 -
DataFrame中去除指定列为空的行
一次,笔者在处理数据时想去除DataFrame中指定列的值为空的这一行,采用了如下做法,但是怎么都没有成功:# encoding: utf-8import pandas as pdimport mathimport numpy as npdata = pd.read_csv('mydata.csv')print len(data)for i in range(len(data))原创 2018-02-05 15:57:13 · 12802 阅读 · 1 评论 -
使用merge连接DataFrame时出现大量空值
问题再现merge具有连接的功能,左连接更是在数据处理中最常用的连接方式。笔者在使用merge方法连接两个DataFrame数据时,出现了大量空值的情况: film userid score 上映时间 闭映时间 出品公司 导演 主角 影片类型 票房/万 评分0 《分手再说我爱你》 1344 9.0 NaN NaN原创 2018-02-05 16:09:21 · 5598 阅读 · 0 评论 -
使用python随机生成指定位数的数字
使用python随机生成指定位数的数字import randomj = 4id = []id = ''.join(str(i) for i in random.sample(range(0,9),j)) # sample(seq, n) 从序列seq中选择n个随机且独立的元素;print id...原创 2018-02-06 16:51:16 · 23090 阅读 · 4 评论 -
Python使用指定字符长度切分数据
处理思路笔者在学习时被要求在Python中使用指定字符长度切分数据。如,string类型的字符串film_type = ‘都市浪漫爱情喜剧’,已知电影类型都是两个中文字符组成,要求切分出字符串中的电影类型。这种情况下,我们可以使用xrange()函数,通过步长来切分。涉及知识xrange() 函数用法与 range 完全相同,所不同的是生成的不是一个数组,而是一个生成器。x...原创 2018-03-07 09:56:30 · 5395 阅读 · 0 评论 -
pandas.DataFrame选取/排除特定行
pandas.DataFrame选取特定行使用Python进行数据分析时,经常要使用到的一个数据结构就是pandas的DataFrame,如果我们想要像Excel的筛选那样,只要其中的一行或某几行,可以使用isin()方法,将需要的行的值以列表方式传入,还可以传入字典,指定列进行筛选。>>> df = pd.DataFrame([['GD', 'GX', 'FJ'],...转载 2018-02-08 08:36:38 · 30619 阅读 · 2 评论 -
Python中Dataframe通过print输出多行时显示省略号
笔者使用Python进行数据分析时,通过print输出Dataframe中的数据,当Dataframe行数很多时,中间部分显示省略号,如下图所示:0 项华祥1 何炅2 张艺飞3 李仁港4 ...原创 2018-03-08 09:39:44 · 22358 阅读 · 4 评论 -
Hadoop hdfs基本操作命令
列出HDFS文件:hadoop fs –ls [-R]a) –ls后面不跟任何内容的话是列出HDFS的"/user/用户名/"目录下的内容;b) -R 列出目录的同时,列出子目录的内容;c)如果要列出某个文件夹中的内容,则-ls后面跟该文件夹的路径,例如列出input中的内容:hadoop fs –ls input在HDFS中创建文件夹:hadoop fs –mk...原创 2018-02-28 18:54:13 · 1840 阅读 · 0 评论 -
使用matplotlib绘制箱型图(箱线图)及简要分析
什么是箱型图 箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。(来源:百度百科【箱型图】词条)箱形图有5个参数: 下边缘(Q1),表示最小值; 下四分位数(Q2),又称“第一四分位数”,等于该样本中所有数值由小到大排列后第25%的数字; 中位数(Q3),又称...原创 2018-03-15 09:53:58 · 20910 阅读 · 2 评论 -
Python中使用matplotlib绘制雷达图
示例代码:# encoding: utf-8import pandas as pdimport numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['KaiTi'] # 显示中文labels = np.array([u'总场次', u'吃鸡数', u'前十数',u'总击杀']) ...原创 2018-03-15 13:02:01 · 14641 阅读 · 2 评论 -
离线环境通过pip安装包
当我们的生产环境处于局域网中,无法连接外网时,我们可以通过pip安装python的各种包文件。下载whl文件pip install –download 指定的下载路径。这里,笔者将文件下载保存到E:\python27\packages文件夹中,便于安装时使用。pip install --download E:\python27\packages pandas 图1:...原创 2018-03-09 16:47:56 · 27091 阅读 · 4 评论 -
Python中对float类型判空
在python中,NaN属于float类型,对float类型判空如下:import mathfrom numpy import nan as NaNa = NaNprint type(a) # 打印输出NaN的类型print math.isnan(a)执行结果:<type 'float'>True...原创 2018-03-02 09:35:37 · 10721 阅读 · 0 评论 -
Python数据清洗之Dataframe中不同分隔符数据的清洗
发现问题文本文件: test_file.txtid,电影名称,上映时间001,《红海行动》,2018-02-16002,《厉害了,我的国》,2018-03-02003;《闺蜜2》;2018-03-02004,《捉妖记2》,2018-02-16005,《西游记女儿国》,2018-02-16我们使用pd.read_csv读取文件的时候,默认分隔符为半角逗号,当然,我们也可以使用s...原创 2018-03-06 18:13:05 · 7367 阅读 · 0 评论 -
Python之列表推导式
例题:使用Python生成列表:[1,4 9,16,25,36,49,64,81,100]列表的规律显而易见,1的平法,2的平方……x的平方,对于这种列表一般写法是使用for循环,然后再通过append()方法在列表后追加写入x的平方:>>> L = []>>> for x in range(1,11): L.append(x*x)>>> print L[1, 4, 9,原创 2018-01-18 08:20:11 · 1032 阅读 · 0 评论 -
Python中读取文件乱码问题解决方案
对开发者来说,最让人头疼的问题之一莫过于读写文件的时候,由于编码千差万别,出现乱码问题。这时候我们可以使用chardet包来检测文件类型,然后再根据类型来decode,下面看举个例子: 案例展示:# encoding: utf-8import chardetwith open('test.txt','r') as f: data = f.read()type = charde原创 2018-01-24 19:56:46 · 7791 阅读 · 1 评论 -
修改Jupyter Notebook的默认工作目录
在寒假学习的时候接触到Jupyter Notebook,Jupyter Notebook可以说是一款神器,它不仅能在文档中执行代码,还能以各种形式分享。在使用Jupyter Notebook的时候我发现它默认打开我的C盘目录,并以此作为它的默认工作目录,但是我需要使用的文件不在C盘,于是开始着手修改它的默认工作目录。Jupyter 默认工作界面在Anaconda Prompt中原创 2018-01-31 15:03:08 · 36281 阅读 · 14 评论 -
Python中list的清空
首先需要明确,在Python中,清空列表的操作有两类四种:第一类,在非函数参数的list中,可以使用del lst_new[] 或者list_new = [] 来清空列表。del_lst.pylst_new = []lst_new.append(3)lst_new.append("233")print lst_newlst_new = []print lst_new执行结果:[3, '原创 2017-11-18 09:53:07 · 21605 阅读 · 2 评论 -
Python练习题(1)
题目: 员工信息包括,员工编号(ID),姓名(Name),职务(Title),电话(Phone),试开发一个有人机界面的程序能够完成以下功能: ① 能够添加新员工信息 ② 列表打印所有员工信息 ③ 输入一个员工编号,输出该员工所有信息 提示:本程序用元组设计界面与员工信息表的表头,每个员工信息用列表存储, 利用字典组织数据集合分析:首先,我们先定义元祖用来存放菜单原创 2017-11-20 15:06:30 · 4531 阅读 · 0 评论 -
Python练习题(2)
(1)设计一个字典,要求能以最方便的形式查询出每个部门所包含的人员。 (2)改进字典结构的设计,在问题1的基础上输入编号即可查出人员信息。 (3)写一个函数,可以向字典添加数据。原创 2017-11-23 10:50:09 · 953 阅读 · 0 评论 -
Python练习题(3)
题目: 有一个单词表以字符串形式表达如下: words = ”’ #-blue-蓝色(的) #-green-绿色(的) #-red-红色(的) #-yellow-黄色(的) #-orange-橘色(的) #-purple-紫色(的) #-原创 2017-11-23 22:11:55 · 1529 阅读 · 0 评论 -
pandas 数据结构之DataFrame
DataFraame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型。DataFrame既有行索引也有列索引,可以被看作由Series组成的字典(共用同一个索引)。DataFrame 对象的构建用字典类型构建DataFrame对象DataFrame 对象的构建的方法有很多,最常用的是用包含等长的列表或者是NumPy数组的字典创建DataFrame对象。>>> import pan原创 2017-12-06 19:09:16 · 657 阅读 · 0 评论 -
Python基础--range()和np.arrange()的区别与联系
在使用python时,我们经常需要使用Numpy,而Numpy中又有arrange()这个函数,它和python自带函数range()的功能貌似比较相同。那么,range()和np.arrange()有什么区别呢?我们先来看官方文档对他们的说明。range(start, stop[, step])这是一个通用的函数来创建包含算术级数的列表。它最常用于for循环。参数必须是纯整数。如果省略step参原创 2017-12-03 16:01:46 · 70242 阅读 · 2 评论 -
初探Numpy
零. 什么是NumpyNumpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数。一. 获取并安装Numpy1.1 安装Python发行版对于许多用户来说,尤其是在Windows上,最简单的方法就是下载一个Python发行版,其中包括所有的关键包。如何安装Pyt原创 2017-12-03 15:13:09 · 734 阅读 · 0 评论 -
pandas数据结构之Series
Series 是一种类似于一维数组的对象,它由一组数据和一组与之相关的数据标签(lable)或者说索引(index)组成。现在我们使用Series生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会使用默认索引(从0到N-1)。>>> from pandas import Series,DataFrame>>> import pandas as pd>>> obj =原创 2017-12-06 15:34:08 · 399 阅读 · 0 评论 -
数据清洗--DataFrame中的空值处理
数据清洗是一项复杂且繁琐的工作,同时也是整个数据分析过程中最为重要的环节。首先,构造一个包含NaN的DataFrame对象。>>> import numpy as np>>> import pandas as pd>>> from pandas import Series,DataFrame>>> from numpy import nan as NaN>>> data = DataFram原创 2017-12-07 10:53:46 · 55335 阅读 · 0 评论 -
使用python读取指定目录下的指定类型文件
准备工作:设置指定的路径,使用os.listdir() 方法获取路径下所有的文件import ospath = "d:\\data" # 设置路径dirs = os.listdir(path) # 获取指定路径下的文件循环判断:使用os.path.splitext()方法筛选出指定类型的文件原创 2018-01-21 08:25:03 · 59688 阅读 · 3 评论 -
Python中使用Matplotlib绘图
pyplot的相关参数pyplot的文本显示使用Matplotlib绘制折线图使用Matplotlib绘图,首先要导入pyplot包:import matplotlib.pyplot as plt案例展示:# 使用Matplotlib绘制折线图ls_x=[0,1,2,3,4,5,6,7]ls_y=[1,2,11,5,6,8,10,原创 2018-01-21 13:19:29 · 1103 阅读 · 0 评论 -
Python中join()和os.path.join()的区别
join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。 案例展示:str = "-";seq = ("a", "b", "c"); # 字符串序列print str.join( seq );运行结果:a-b-cos.path.join(path1[, path2[, …]]) 方法用于把目录和文件名合成一个路径。 案例展示:import ospa原创 2018-01-21 14:17:18 · 1323 阅读 · 0 评论 -
巧用Python的choice()方法
python中choice() 方法返回一个列表,元组或字符串的随机项。 有些时候我们需要返回字典里的随机项,怎么办呢?我们可以先遍历字典的值,将值存储到列表中,再通过choice()方法返回随机项。案例展示:>>> import pandas as pd>>> import random>>> My_dict = {225093:'铁道飞虎', 228494:'老师也疯狂',225原创 2018-01-21 20:53:41 · 13751 阅读 · 0 评论 -
Python正则表达式
语法规则参考文档菜鸟教程-正则表达式(http://www.runoob.com/regexp/regexp-syntax.html)原创 2018-01-22 13:23:07 · 234 阅读 · 0 评论 -
Python中的原生字符串"r"
Python中字符串前面加上 r 表示原生字符串,与大多数编程语言相同,正则表达式里使用”\”作为转义字符,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符”\”,那么使用编程语言表示的正则表达式里将需要4个反斜杠”\”:前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。 案例展示:# encoding: utf-8import re原创 2018-01-22 14:17:34 · 13543 阅读 · 0 评论 -
新手常见的Python运行时的17个错误
当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂。这里列出了常见的的一些让你程序 crash 的运行时错误。1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError :invalid syntax”)该错误将发生在类似如下代码中:if spam == 42转载 2018-01-23 16:56:56 · 397 阅读 · 0 评论 -
Python中find()方法的使用
find()方法判断字符串str,如果起始索引beg和结束end索引能找到在字符串或字符串的一个子串中。 语法str.find(str, beg=0 end=len(string))参数str -- 此选项指定要搜索的字符串。beg -- 这是开始索引,默认情况下为 0。end -- 这是结束索引,默认情况下它等于字符串的长度。返回值如果找到此方法返回的索引,否则返回原创 2018-01-24 11:35:46 · 17284 阅读 · 3 评论 -
Python中将dataframe转换为字典
有时候,在Python中需要将dataframe类型转换为字典类型,下面的方法帮助我们解决这一问题。 任务代码# encoding: utf-8import pandas as pda = ['Name', 'Age', 'Gender']b = ['Ali', '19', 'China']data = pd.DataFrame(zip(a, b), columns=['proje...原创 2018-03-21 08:53:47 · 76201 阅读 · 3 评论