首页
朋友圈
留言板
关于
Search
1
基于Vue和DataV的数据可视化模板
1812 阅读
2
阿里云盘来了(附带内测码)
844 阅读
3
玛莉嘉 原视频
788 阅读
4
自律
728 阅读
5
CG《目标》完整版
615 阅读
技术分享
博客
大数据
前端
生活
资源分享
Search
标签搜索
typecho
PHP
数据分析
博客
大数据
资源分享
Hadoop
日常分享
小程序源码
免费分享
css
前端
HDFS
面试题
技术分享
阿里云盘
Chrome
开源项目
大数据可视化
JS
木子卜
累计撰写
54
篇文章
累计收到
66
条评论
首页
栏目
技术分享
博客
大数据
前端
生活
资源分享
页面
朋友圈
留言板
关于
搜索到
11
篇与
大数据
的结果
2020-12-10
学习Python数据分析第五天——分组,排序,聚合
分组,排序,聚合排序,分组和聚合的组合都有无数种,这在技术层面不难。但如果要写报告,避免大而全,因为客户的注意力很容易浪费在没有意义的图表上。将客户真正关心的搞出来,行业背景分析,用户画像,竞品监测,销售行为分析...如果是写通俗文章,多问几个人,你想要知道什么。1 分组分组就是按照一个或多个键,将数据分为几个组的过程。你可以直接传列名做分组,df.groupby('column_name')也可以传递相同行数的Series甚至DataFrame。下面的例子是按日期里的年做分组:df2.groupby(df2.日期.map(lambda x:x.year))Pandas也能支持传递多个列的数组,除了切片以外,能在索引上使用的基本都能在group,sort上使用,一致性的API上手非常容易。值得注意的是,由于时间索引分组比较困难,例如每五个月一组,可以用针对TimeStamp特定优化的方案,如resample:例子北京按年平均的AQI:db[db.city==u'北京'][u'平均值'].resample('12M').aqi.mean()2 排序Pandas的排序非常之快,大部分操作都能在瞬间完成。排序分为两类:对一般数据排序一般排序,直接用sort即可,传递lambda,列名或多个列,或长度一致的Series,这与groupby等其他API一致,此处从略。可指定ascending=True|False来指定升序,降序。对分组后数据排序groupby之后的数据,和一般的DataFrame不同,而像个字典(dict)。对键排序,需使用sort_index,值排序,需使用sort_values。3 聚合聚合可将分组后的数据按需求重新打平。如求每个分组的最大值(max),最小值(min),或数量等,例如:df2.groupby(df2.日期.map(lambda x:x.year)).size()例子car.groupby(car.年月.map(lambda x:x.month)).销量.sum().plot(kind='bar',title='汽车市场月度销量汇总')将汽车数据按照月份分组,按销量求和。然后绘制直方图:Pandas支持直接将聚合结果绘图输出(虽然丑但是方便啊),下一节我们将详细介绍它的使用细节。这条语句统计了广西省东风MPV的各车型总体销量情况,并按数量降序:df[(df.省=='广西') & (df.车型分类=='MPV') & (df.品牌=='东风')].groupby('车型').size().sort_values(ascending=False)4 数据透视表如果我想一次性地针对多种分组方式实行多种聚合策略,有没有更方便的API? 答案是数据透视表(pivot_table)。Excel也有该功能,异常强大,有了它,一般需求几乎都能实现。下面是同时按Name rep manager分组,按价格分别以总价和数量聚合,并将空值填为0.pd.pivot_table(df,index=["Name","Rep","Manager"],values=["Price"],aggfunc=[np.sum,len],fill_value=0) pivot_table的基本操作pivot之后,生成的DataFrame是multiindex的,处理起来稍显繁琐,用xs可将某个子index的数据“提升”出来,例如:df_pivot.xs(('12AM新坐标',2011))至于更复杂的访问和采样,可配合loc和PD.IndexSlice, 可自行查看官方文档。
2020年12月10日
188 阅读
0 评论
0 点赞
2020-12-10
学习Python数据分析第四天——查询和过滤
查询和过滤DataFrame是pandas的核心数据结构,可以理解为Excel里的二维矩阵,它更高级,能表达3维或更高维的数据,支持多索引。在内存中存取,效率极高,绝大多数操作都和DataFrame相关。维度为2的DataFrame,行(column)和列(row)的axis分别为0和1。可以针对某些列做索引(index),高维DataFrame是相当少见的。1 查询下面的表展示了Pandas对索引的介绍:符号说明例子[]列值索引df['房价'] ,df[['房价','车价']]loc行值索引df.loc[0], df['2013':'2015']iloc行号索引df.iloc[0], df.iloc[2:10]ix行索引df.ix[0], df.ix[2:10]时间也是比较重要的index,比较好用的是Timestamp,接受2016-12-24这种字符串,字符串到时间转换代码如下:weather.index= weather[u'日期'].map(lambda x:Timestamp(x))Pandas的索引功能非常强大,补充如下:loc也能支持先行后列的查询:df.loc['20130101':'20130103' , ['A','B']],类似的如iloc个人感觉ix的有些冗余,和ix和iloc类似所有索引都支持字符串和数组,以及切片(slice)用于指定范围,索引还能传递一个bool类型的lambda表达式,或返回和其shape一致的bool数组2 过滤过滤有两方面需求:找出特定数据进行针对性分析,或针对特定数据做分析,过滤异常值。异常值非常重要,应该细致分析导致它们产生的原因,如果真是异常值,应该提早过滤,否则做聚合时会严重影响结果,如天价的房价。先讨论按行过滤:非空过滤,过滤掉col列为空的内容:df=df[!data.col.isnull()]字符串过滤:db[db.city.str.contains(u'市')]若需要对df对某个键去重:qq['id'].unique()isin能判断单元格中的值是否在给定的数组内,若希望对多个列做过滤,Pandas提供了现成的方法df.filter,还支持正则。还能进行逻辑操作,实现更复杂的需求。3 遍历有了索引和列操作,为何还要有遍历?因为遍历更加灵活,当然性能相对会差一些:函数遍历目标lambda参数说明map一列的cellcell最为常见apply列/行列或行的Seriesaxis:不填写cell,1:行,2:列applymapcellcellelement-wise最为灵活iterrows行遍历提供行号见备注iteritems列遍历提供列名见备注itertuples行遍历提供index见备注map, apply,applymap是只返回单元格或行列本身的,参数都是lambda,本节假设读者对python的lambda表达式有足够的了解。但这样不能实现如“奇数偶数行做分别作不同处理的需求,则这三个函数就无能为力。因此就有后面iterrows等三个函数。如iterrows,它会将行号和行迭代出来,从而方便自定义逻辑,示例如下:for i,row in data.iterrows(): pass4 求值和合并一张表可能很难包含所有的信息,因此需要计算新值(求值)或join其他表(合并),但Pandas本身的Join并不好用,经常出错。如果某个属性可以通过计算获得,可对各个列当做变量来处理,由于内部使用了C++和numpy加速,效率远比for循环更高,下面是处理房价的一个例子:总价/单价,并做小数点截取:table['面积']= np.round(table['总价']*10000/table['单价'])numpy提供了绝大多数常见的函数算子,能满足大部分需求。下面是合并:横向合并(需保证行数一致)- 横向合并 df = pd.concat([data_train, dummies_Cabin])删除列 df.drop(['Pclass', 'Name', 'Sex')]纵向合并(join操作)data.merge(right=prop_rates, how='inner',left_on='Property_Area',right_index=True, sort=False)如果不加参数,则可以自动通过列名合并。join的参数比较复杂,建议直接参考Pandas官方文档。
2020年12月10日
314 阅读
1 评论
3 点赞
python数据分析第三天——数据基本操作
2020年12月04日
245 阅读
0 评论
1 点赞
2020-12-04
替换df['年龄'].replace(180,18) //.replace(被替换的值,新值) df.fillna(18) // 对表中所有的空值 替换成18 df.replace([np.NaN,180],18) //对表中的NaN和180两个值 替换成18 df.replace({np.NaN:20,180:18}) //将NaN替换成20,180替换成18排序df.sort_values(by = ['年龄'],ascending=False,na_position='first') //(by = 需要排序的列,ascending=升序或降序,na_position= 空值放在哪里) df.sort_values(by = ['年龄','班级'],ascending=[True,False])排名df['年龄'].rank(method = 'average') df['年龄'].rank(method = 'first') df['年龄'].rank(method = 'min') df['年龄'].rank(method = 'max')删除# 删除列 df.drop(['年龄','学号'],axis=1) df.drop(df.columns[[2,3]],axis=1) df.drop(columns = ['年龄','学号']) # 删除行 df.drop([1,2],axis=0) df.drop(df.index[[0,1]],axis=0) df.drop(index = [1,2])计数df['报到时间'].value_counts() df['报到时间'].value_counts(normalize = True,sorts= True) // (normalize= Ture 显示每个数值的占比,sorts=Ture 表示对结果排序) 获取唯一值 df['报到时间'].unique()查找df['年龄'].isin([18,22]) //在某列中查找,列中的数值是否在后面的列表中(既在18或22中) df['报到时间'] = pd.to_datetime(df['报到时间']) //日期需要转换格式后使用 df['报到时间'].isin(['2020-09-01']) df.isin([18]) //对全表查找,是否存在18标记数据区间# cut() 需要数值唯一不重复 pd.cut(df['宿舍号'],2,[0,3]) //(需要划分的列,分成几个区间,区间的取值)【0,3】的意思是,0-3为一个区间,3-最大值为一个区间,一共分成了2个区间插入列df.insert(1,'班号',[1,'A1','研1',2,'研2']) //(插入位置的索引,列名,对应的数值)数值长度要和原表中的行数相等 df['宿舍管理员'] = ['小小' for i in range(len(df['宿舍号']))] //用列表推到式快速插入一列相同的值转置df.T df.T.T层次化显示df.stack() df.stack().unstack()
2020-12-02
python数据分析——第二天
相关扩展包(1)numpy:科学计算包,支持N维数组运算、处理大型矩阵、成熟的广播函数库、矢量运算、线性代数、傅里叶变换、随机数生成,并可与C++/Fortran语言无缝结合。树莓派Python v3默认安装已经包含了numpy。(2)scipy:scipy依赖于numpy,提供了更多的数学工具,包括矩阵运算、线性方程组求解、积分、优化、插值、信号处理、图像处理、统计等等。(3)matplotib:matplotib模块依赖于numpy模块和tkinter模块,可以绘制多种形式的图形,包括线图、直方图、饼状图、散点图、误差线图等等,图形质量可满足出版要求,是数据可视化的重要工具。(4)pandas:pandas(Python Data Analysis Library)是基于numpy的数据分析模块,提供了大量标准数据模型和高效操作大型数据集所需要的工具,可以说pandas是使得Python能够成为高效且强大的数据分析环境的重要因素之一。以上就是这几天所总结的基础知识,日后还会不断随着学习的进度更新总结,以方便自己回顾。
2020年12月02日
273 阅读
0 评论
0 点赞
2020-11-30
基于Vue和DataV的数据可视化模板
项目名称:vue-big-screen项目作者:奔跑的面条开源许可协议:Apache-2.0项目地址:{hide}https://gitee.com/MTrun/big-screen-vue-datav{/hide}项目简介一个基于 vue、datav、Echart 框架的 " 数据大屏项目 ",通过 vue 组件实现数据动态刷新渲染,内部图表可实现自由替换。部分图表使用 DataV 自带组件,可进行更改。项目需要全屏展示(按 F11)。项目部分区域使用了全局注册方式,增加了打包体积,在实际运用中请使用按需引入。拉取项目之后,建议按照自己的功能区域重命名文件,现以简单的位置进行区分。项目环境:vue-cli-3.0、webpack-4.0、npm-6.13、node-v12.16。项目展示主要文件介绍
2020年11月30日
1,812 阅读
2 评论
5 点赞
2020-11-26
python数据分析-第一天
数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。在好几年前,大家应该听说过啤酒和尿布的问题,那家大型的全球零售商(超市),通过数据分析,发现买尿布的人一般也会顺带买啤酒,从而让两件商品卖得更多,为企业赚取了更多的money。数据分析是指利用合适的工具在统计学理论的支撑下,对数据进行 一定程度的预处理,然后结合具体业务分析数据,帮助相关业务部门监 控、定位、分析、解决问题。说直白一点,就是通过将数据表格化、图形化、动态化,帮助企业领导高效决策,提高经营效率, 发现业务机会点,让企业获得持续竞争的优势。数据分析更直观1.lines线图2. 直方图3. 散点图4. 条形图5. subplots 子图学习数据分析的第一天
2020年11月26日
315 阅读
0 评论
0 点赞
2020-11-20
HDFS系统架构图
HDFS系统架构图
2020年11月20日
190 阅读
0 评论
5 点赞
2020-11-20
HDFS分布式文件系统
HDFS 是一个文件系统,用于存储文件,通过统一的命名空间—目录树来定位文件。其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。HDFS设计理念分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析;对同一个文件进行联合管理。每个小文件做冗余备份,并且分散到不同的服务器中,做到高可靠不丢失。为各类分布式运算框架(如:mapreduce,spark,tez,……)提供数据存储服务。
2020年11月20日
174 阅读
1 评论
5 点赞
2020-11-18
大数据的概念与特征
概念:目前,业界对大数据还没有一个统一的定义。大数据本身是一个抽象的概念。从一般意义上讲,大数据是指无法在有限时间内用常规软件工具对其进行获取、存储、管理和处理的数据集合。特征:(1)Volume(大量):大数据的数据体量巨大(2)Velocity(高速):大数据的数据产生、处理和分析的速度在持续加快。(3)Variety(多样):大数据的数据类型繁多。(4)Value(低价值密度):大数据的数据价值密度低。(5)Veracity(真实性):
2020年11月18日
185 阅读
0 评论
1 点赞
2020-11-18
云计算的分类
1.按服务分(1) IaaS (Infrastructure as a Service,基础设施即服务)"]包括网络资源,存储资源,计算资源,为用户提供虚拟磁盘,虚拟化。(2)PaaS(Platform-as-a-Service,平台既服务)"]为用户提供操作系统,数据库,编程环境、网络协议。报证高可靠性,可用性。(3) SaaS(Software-as-a-Service,软件即服务)"]为用户提供安全、丰富的应用体验,保证应用程序的安全,可靠性,高可用性。比如Office套件,Google docs2.按部署模式分共有云:为外部提供服务,外部的企业。不受企业管理。私有云:企业内部、用企业内部的资源社区云:由若干个组织分享,以支持某个特定的社区混合云:由两个或多个云组成。
2020年11月18日
135 阅读
0 评论
4 点赞
2020-11-18
Hadoop的概述
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。串行计算、并行计算、分布式计算、集群计算、云计算1.串行运算2.并行运算并行计算可以划分成时间并行和空间并行。时间并行即流水线技术,空间并行使用多个处理器执行并发计算,当前研究的主要是空间的并行问题3.分布式计算多台机器共同操作4.云计算云计算是对基于网络的、可配置的共享计算资源池能够方便的、随需访问的一种模式。共享计算资源池包括:网络、服务器、存储、应用和服务。
2020年11月18日
146 阅读
0 评论
2 点赞