python3数据科学
文章平均质量分 60
lyzkks
喜欢分享技术,欢迎与我交流!!!
展开
-
Series和Dataframe的Reindexing和drop
series的reindex添加index 可以看到,在reindex的时候添加的新的index对应的值并未指定,默认就是NaN。为新的index指定值:其他填充值的方法: 这种方法的原则是新增的index跟随前一个存在值的index的值。即:index2-4的值就是index1的值,index6-9的值就是index5的值,index11...原创 2018-04-07 16:58:50 · 365 阅读 · 0 评论 -
通过去重进行数据清洗
数据准备这里的数据是使用 apply进行数据处理 中的结果。Seqno列去重查看Seqno列都有哪些值 这是去除重复后,这一列中都包含的值。duplicated方法duplicated用于从上到下比较指定某一列的值,当这个值第一次出现时,返回False,当这个值和上一个比一样时,返回True 通过这个方法就可以查看到这一列中重复的情...原创 2018-04-12 16:36:59 · 3292 阅读 · 0 评论 -
时间序列的操作
创建数据创建一个包含datetime类型的series 时间序列操作访问values通过位置信息进行访问通过index数据类型访问通过指定index值访问将index的值作为字符串指定访问也是可以的: 注意,这里还使用了s1[‘20171001’]这种形式,即没有指定分隔符,也是可以的。最后一种情况,如果没有指定具...原创 2018-04-12 17:39:46 · 1257 阅读 · 0 评论 -
分组和透视实战
概述这里我准备了一个关于飞机航班延误情况的一张表,有20W+行,其中包括起飞时间,延误时间,是否取消,航空公司代码等信息,通过分析这些历史记录来得到一个航空公司的航班的延误情况。数据准备获取延误时间top10获取延误比例有一个value_counts方法可以计算指定列中值出现的次数,例如: 计算出了cancelled列中0出现196873次,1出...原创 2018-04-18 14:12:46 · 279 阅读 · 0 评论 -
数据分箱技术Binning
数据分箱就是按照某种规则将数据进行分类。就像可以将水果按照大小进行分类,售卖不同的价格一样。对series进行分箱首先创建一个整形随机的series,表示学生的成绩: 然后指定一个分箱原则,规定:0-59为不及格,59-70为一般,70-80为良好,80-100位优秀: 然后利用pandas中的cut方法,指定分箱规则和对象,结果将获得一个Categories对象: ...原创 2018-04-13 11:26:52 · 15862 阅读 · 0 评论 -
Matplotlib介绍及使用
介绍Matplotlib的功能和matlab中的画图的功能十分类似。因为matlab进行画图相对来说比较复杂,所以使用python中的Matplotlib来画图比较方便。Matplotlib是python中的一个包,主要用于绘制2D图形(当然也可以绘制3D,但是需要额外安装支持的工具包)。在数据分析领域它有很大的地位,而且具有丰富的扩展,能实现更强大的功能。最简单的程序...原创 2018-04-18 18:15:33 · 9569 阅读 · 0 评论 -
数据分组技术GroupBy和聚合技术Aggregation
数据准备这里事先准备了一个city_weather.csv文件,其中包括四行:日期、城市、温度、风力。它的大小为20行。按列分组加入这里按照city这一列进行分组: 通过groupby方法指定列进行分组,最后得到一个DataFrameGroupBy 类型的对象,可以对这个对象进行后续的操作。查看分组信息groups方法可以查看DataFrameGrou...原创 2018-04-13 14:26:36 · 1427 阅读 · 0 评论 -
subplot和subplots绘制子图
概述plot可以绘出精美的图形,但是如果想要在一张图中展示多个子图,plot就很难办了。matplotlib提供了subplot来解决这一问题。(其实很像matlab中的绘图方法)subplot绘图方法首先利用之前plot的方法,在一个人图中绘制两个曲线: 现在的效果是两个图像挤在一张图片中,有些情况下这样的布局比较好,有些情况下则需要将两个曲线分开到两个不同的子图像...原创 2018-04-19 11:16:36 · 90023 阅读 · 12 评论 -
【实战】股票价格分析实战
数据获取源数据网站数据获取有很多途径:通过爬虫主动获取通过官方提供的接口获取通过一些专门提供数据的网站获取这里采用第三种方法,使用finance.yahoo.com这个网站。这个网站常被用来进行金融股票数据的搜索。例如,以阿里巴巴股票为例,进入网站搜索baba即可查看到阿里的股票价格: 安装pandas_datareaderpandas_datar...原创 2018-04-23 16:28:49 · 565 阅读 · 0 评论 -
series和dataframe绘图
series绘图生成数据并画图首先生成一个series数据: 其中cunsum方法是累加,如图: 直接绘制s1的图像: 修改图像属性改变图像类型kind参数默认为line,表示显示折线图,也可以修改这个参数的值以显示其他类型的图像: 显示格栅grid参数默认为False,修改其值为True可以在图像中显示格栅: 增加图例la...原创 2018-04-19 15:01:34 · 6112 阅读 · 2 评论 -
直方图和密度图
直方图直方图反映的是一组数据的分布情况绘制直方图hist方法可以用来绘制直方图: 这就是一个直方图,但是不是很清晰,可以指定每个柱间宽度: 直方图反应的是分布情况,为了加深这一理解,可以看如下实验: 反映了每个值出现的次数指定分布区间通过bins指定分布区间个数 设置颜色密度图密度图可以了解到数据分布的密度情况绘制...原创 2018-04-19 15:45:30 · 21075 阅读 · 0 评论 -
通过apply进行数据预处理
数据准备这里我事先下载了一个csv文件,其中包含两列:时间戳和字符串,大小为近8000行 使用apply进行预处理apply可以批量的改变dataframe中的数据。 经过上边的处理,在df中添加了一列,全部都是a将A列改的值为大写apply接收了一个函数作为参数,apply将会把指定列中的每一个值送给函数参数进行处理。data列拆分根据观察,d...原创 2018-04-12 16:09:29 · 628 阅读 · 1 评论 -
Concatenate和Combine操作
ConcatenateConcatenate意为:连接series中矩阵(array)的连接 最终形成一个新的矩阵,大小为3列6行。其实就是将arr2连接到了arr1的下面。更改连接方式其中有一个参数:axis,默认为0,表示按列连接(增加行数),即将第二个矩阵的列依次连接到第一个矩阵的列的下面。如果axis=1,表示按行连接(增加列数)。 最终形成了...原创 2018-04-12 15:34:47 · 1421 阅读 · 0 评论 -
深入理解series和dataframe
准备导入必要的模块,然后创建一个基础数据: series通过values创建series获取series的value和index series的value数据类型为array,而index在创建时未指定,所以默认为RangeIndex,从0开始累加。创建series指定indexdataframe通过字典创建dataframe...原创 2018-04-05 13:41:56 · 3079 阅读 · 1 评论 -
谈一谈NaN
创建NaN型数据创建NaN数据numpy中有一个nan的方法可以创建一个NaN型的数据: 可以看到,NaN型数据n,其实是一个float类型的数据。NaN和其他数据运算可见,NaN和其他数据做运算,结果都是NaN。series中NaN操作isnull用于判断每个元素是否为空 notnull判断每个元素是否不为空 drop...原创 2018-04-07 20:22:19 · 437 阅读 · 0 评论 -
数据科学中常用的python库介绍
常用库NumpyScipyPandasMatplotlibScikit-learnStatsModelsNumpy最基础的python库,它提供以下功能和特点:N维数组,快速高效,矢量数学运算高效的Index,不需要循环开源免费跨平台,底层C实现,运行效率媲美C/MatlabScipy它是一个依赖于Numpy的一个更高级的python库...原创 2018-03-21 13:37:21 · 751 阅读 · 0 评论 -
Numpy学习
创建及访问Array数组通过python的list创建数组 通过列表list_1,使用numpy中的array方法来创建数组。这里创建了一个一维数组。 这里给array传入了一个包含两个list的列表作为参数,即表示创建了一个二维数组。获取数组的属性获取数组的大小 返回的结果(2,4)表示这个数组是一个2*4大小的数组(2行4列)...原创 2018-03-31 18:04:16 · 269 阅读 · 0 评论 -
多级index
创建多级index 可以看到s1有两级index,也可以将它看成是由两个大的series构成的series多级index的操作多级index的series也是一个多维的结构多级index转换为dataframedataframe转换为多级index 但是这样看来,转换过来的index顺序好像和之前的不一样,可以通过下面的方法...原创 2018-04-08 22:05:56 · 239 阅读 · 0 评论 -
Mapping和Replace
dataframe中增加一列通过series增加 因为dataframe中每一列都是一个series,所以增加一个series就是增加了一列。这种方式在添加的时候有一个缺陷,就是后边series中的值在添加的时候必须要关注dataframe的index。一方面是为了数据要一一对应,另一方面,series在默认不指定index(就像上面的情况)的时候,index从0开始...原创 2018-04-09 14:24:08 · 672 阅读 · 0 评论 -
series和dataframe的科学计算
series相加series相加就是将对应index位置的values相加。 NaN和任何数做任何运算结果都为NaN。dataframe加法将dataframe想象成一个坐标系: dataframe加法就是将相同坐标的值相加。 NaN和任何数做任何运算结果都为NaN。dataframe内置的方法按列或列求和sum ...原创 2018-04-09 15:46:03 · 4734 阅读 · 0 评论 -
重命名dataframe的index
方法1:直接赋值法因为dataframe的index也是series格式的数据,所以直接指定index为一个新的series即可修改dataframe的index: 方法2:map方法3:rename通过rename传入一个函数可以批量替换index或rename: 也可以通过传入一个字典,指定修改index或column: 自定义map函数处...原创 2018-04-09 20:59:37 · 18818 阅读 · 0 评论 -
dataframe的merge操作
merge操作的原则dataframe的merge是按照两个dataframe共有的column进行连接,两个dataframe必须具有同名的column。 如果两个dataframe的column都不相同,则会在merge的时候报错: 而当两个dataframe具有相同的column时,若两个column中没有相同的value,则会merge一个空的dataframe: ...原创 2018-04-10 20:17:38 · 52046 阅读 · 1 评论 -
pandas学习
series通过list创建seriesseries就像一个表格,每一个数据对应一个序号,可以通过如下的方法创建一个series: 访问series数据通过下面的方法访问series的数据: series的数据类型就是numpy中的array。通过array创建series通过字典创建series分别指定values和in...原创 2018-04-03 20:57:24 · 279 阅读 · 0 评论 -
透视表
什么是透视表pandas提供了类似于Execl的透视表功能。为了更好的展示数据,临时的将原有的表结构进行了变更,根据这个变化数据也会变化。数据准备这里我事先准备了一个execl文件,并将其转化为dataframe。 生成透视表默认情况透视表的方法是:pivot_table 这里,指定了生成透视表时的index为name。可以看到,生成的透视表对i...原创 2018-04-17 20:57:31 · 538 阅读 · 0 评论 -
Seaborn
概述Seaborn是matplotlib的强大的一个扩展。Seaborn和matplotlib对比数据准备首先导入数据,数据事先准备好的是一些花的品种,其他列分别表示花萼的长度\宽度、花瓣的长度\宽度 花的品种一共三种: 需求要求画出花萼和花瓣的长度的散点图,并且颜色要区分花的种类实施首先根据花的种类定义好每种类花的颜色: ...原创 2018-04-21 16:33:02 · 1098 阅读 · 0 评论