
数据分析
文章平均质量分 62
周小董
专注于数据采集,数据治理及数据架构的研究,热爱分享一些经验,欢迎朋友来探讨交流。 附言:文章仅用于个人学习,如有侵权,请联系我删除,谢谢!
展开
-
[1224]Pandas常用的遍历方法
其中,iterrows方法返回一个迭代器,可以逐行遍历DataFrame,返回每一行数据的索引和值。总的来说,对于大型的 Pandas DataFrame,应该尽量避免使用循环遍历,而是使用 Pandas 内置的方法,如 apply() 和 applymap() 等。applymap() 方法可以应用一个函数到 DataFrame 中的每一个元素,返回一个新的 DataFrame。apply() 方法可以应用一个函数到 DataFrame 中的每一个元素,返回一个新的 DataFrame。原创 2023-09-11 21:36:13 · 7563 阅读 · 0 评论 -
[1223]Pandas遇到SQL,如何做关联查询(pandasql)
首先是表的横向连接,顾名思义,就是在原基础表,往下一空行复制粘贴新的数据,要求两张表的列标题都是一样的,才能正常连接,这里使用UNION ALL进行连接,表示将列标题相同的两张表连接起来,如果是使用UNION连接,两张中相同的两行只会保留一行连接。纵向连接是表格连接中使用最广泛的连接,纵向连接又可以分为内连接和外连接,内连接,连接表都匹配的记录才会出现在最终的结果集,并且连接顺序无关,这里内连接的第一种办法是使用WHERE语句,当两个表的ID相同时进行连接。构建第二张表,用于数据表的横向连接。转载 2023-09-11 21:35:30 · 788 阅读 · 0 评论 -
[1164]python用numpy计算均值,方差,标准差
np.var函数计算方差。注意ddof参数,默认情况下,np.var函数计算方差时,是除以n=len(a),此时ddof=0。我们都知道用样本方差来估计总体方差的计算公式是除以。numpy自带一些函数接口,可以用来很方便的计算一组数据的均值(mean),方差(variance)和标准差(standard deviation)。参考:https://blog.youkuaiyun.com/weixin_39751679/article/details/110044945。函数也可以用来计算mean,不一样的地方时,原创 2022-10-22 18:43:18 · 3271 阅读 · 0 评论 -
[1147]pandas中merge()函数的用法详解
数据的函数,不像concat是按照某行或某列来合并,而是按照数据中。具体参数的意思,举例说明,一看就懂!merge是pandas中用来。先列举两个DataFrame。原创 2022-06-12 22:21:35 · 1041 阅读 · 1 评论 -
[1016]DataFrame一列拆成多列以及一行拆成多行
文章目录DataFrame一列拆成多列DataFrame一行拆成多行分割需求简要流程详细说明0. 初始数据1. 使用split拆分2. 使用stack行转列3. 重置索引(删除多余的索引)并命名为C4. 使用join合并数据DataFrame一列拆成多列读取数据将City列转成多列(以‘|’为分隔符)这里使用匿名函数lambda来讲City列拆成两列。DataFrame一行拆成多行分割需求在处理数据过程中,会需要将一条数据拆分为多条,比如:a|b|c拆分为a、b、c,并结合其他原创 2021-07-10 00:30:17 · 1792 阅读 · 4 评论 -
[951]numpy.concatenate()函数
numpy.concatenate() 官方文档numpy.concatenate((a1, a2, …), axis=0, out=None)将具有相同结构的array序列结合成一个arrayaxis是拼接方向,0为横轴,1为纵轴。axis=0,拼接方向为横轴,需要纵轴结构相同,拼接方向可以理解为拼接完成后数量发生变化的方向。>>> a=np.array([1,2,3])>>> b=np.array([11,22,33])>>&g原创 2021-03-06 21:46:23 · 222 阅读 · 0 评论 -
[948]Pandas数据分组的函数应用(df.apply()、df.agg()、df.transform()、df.applymap()、df.groupby())
这个函数需要自己实现,函数的传入参数根据axis来定,比如axis = 1,就会把一行数据作为Series的数据 结构传入给自己实现的函数中,我们在函数中实现对Series不同属性之间的计算,返回一个结果,则apply函数 会自动遍历每一行DataFrame的数据,最后将所有结果组合成一个Series数据结构并返回。Dataframe在行(axis=0)或列(axis=1)上进行分组,将一个函数应用到各个分组并产生一个新值,然后函数执行结果被合并到最终的结果对象中。默认axis=0,即逐列进行操作;原创 2021-02-28 22:39:58 · 5710 阅读 · 0 评论 -
[899]数值特征-对数据进行log变化
对于一些标签和特征来说,分布不一定符合正态分布,而在实际的运算过程中则需要数据能够符合正态分布因此我们需要对特征进行log变化,使得数据在一定程度上可以符合正态分布进行log变化,就是对数据使用np.log(data+1) 加上1的目的是为了防止数据等于0,而不能进行log变化代码:第一步:导入数据第二步:对收入特征做直方图,同时标出中位数所在的位置,即均值第三步:对收入特征做log变化,使用np.log(data+1)第四步:对log收入特征做直方图,标出中位数线的位置,即均值结论:我们可转载 2020-09-27 12:54:16 · 2515 阅读 · 0 评论 -
[869]pandas的dataFrame的行列索引操作
文章目录pandas的dataFrame的索引值从1开始DataFrame中指定位置增加删除一行一列pandas中DataFrame修改index、columns名的方法pandas的dataFrame的索引值从1开始假设有一个dataFrame:这里的index的索引列是从0开始的,那么现在我想要让它从1开始怎么做?我搜了几篇文章,发现有的是:df.index = range(len(df)) //这样的data_df = pd.DataFrame({'a':a,},index=list(原创 2020-07-17 22:06:48 · 1596 阅读 · 0 评论 -
[784]python解析PDF表格
通过看别人写的博客,发现python里面有关PDF解析的通常有以下四种:pdfminer,擅长仅仅是文字的解析,本小白试过了,是把表格解析成普通的文本,还经常会伴随一些莫名奇妙的不认识的符号。这个方案pass掉pdf2html,看例是把pdf解析成html,但是html的标签并没有规律,解析一个还行,但是本小白是许多的pdf文档下小标题的表格,这个方案直接pass掉tabula,...原创 2020-03-27 18:22:58 · 1241 阅读 · 0 评论 -
[712]pyecharts绘画:仪表盘|漏斗图|关系图|水球|极坐标|雷达|词云--支持中文
绘制图形: 仪表盘 - 漏斗图 - 关系图 - 水球 - 极坐标 - 雷达 - 词云–支持中文from pyecharts import Funnel, Gauge, Graphattr =["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]v1 =[5, 20, 36, 56, 78, 100]v2 =[55, 60, 16, 20, 15, 80]仪表盘...转载 2019-12-01 22:51:11 · 870 阅读 · 0 评论 -
[711]pyecharts绘画:柱形图-折线图-饼图
常用图形:柱形图-折线图-饼图-散点图from pyecharts import Line, Bar, Pie, EffectScatter# 数据attr =["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]v1 =[5, 20, 36, 10, 10, 100]v2 =[55, 60, 16, 20, 15, 80]柱形图bar = Bar('柱形图...转载 2019-12-01 22:50:32 · 516 阅读 · 0 评论 -
[710]python使用pyecharts绘制地图
pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。安装pip install pyechartspypi:https://pypi.org/project/pyecharts/p...原创 2019-12-01 22:49:44 · 12011 阅读 · 6 评论 -
[647]python库Camelot从pdf抽取表格数据
Camelot: 一个友好的PDF表格数据抽取工具一个python命令行工具,使任何人都能很轻松的从PDF文件中抽取表格数据。安装 Camelot安装非常简单! 在安装相关的依赖后,可以直接使用pip安装。$ pip install camelot-py怎样使用Camelot使用Camelot从PDF文档提取数据非常简单为什么使用CamelotC...原创 2019-08-11 23:11:46 · 6103 阅读 · 2 评论 -
[599]InfluxDb+Grafana数据监控
本篇文章请结合以下两篇文章观看Grafana安装及简单使用Windows版InfluxDB及相关软件安装与配置这个是监控服务器网速的最后成果,显示的是下载与上传的网速,单位为M。爬虫的原理都是一样的,只不过将数据存到InfluxDB的方式不一样而已。环境InfluxDb,是目前比较流行的时间序列数据库;Grafana,一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示...原创 2019-04-24 18:26:05 · 6094 阅读 · 0 评论 -
[555]np.linalg.norm
(1)np.linalg.inv():矩阵求逆(2)np.linalg.det():矩阵求行列式(标量)np.linalg.norm1、linalg=linear(线性)+algebra(代数),norm则表示范数。首先需要注意的是范数是对向量(或者矩阵)的度量,是一个标量(scalar):首先help(np.linalg.norm)查看其文档:x_norm=np.linalg.n...原创 2019-03-07 18:23:06 · 623 阅读 · 0 评论 -
[524]as_matrix将表格转换为矩阵
#-*- coding: utf-8 -*-#构建并测试CART决策树模型import pandas as pd #导入数据分析库from random import shuffle #导入随机函数shuffle,用来打乱数据import matplotlib.pyplot as plt #导入Matplotlibdatafile = '../data/model.xls' #数据名...转载 2019-02-18 18:21:04 · 2452 阅读 · 0 评论 -
[523]pd.isnull,pd.notnull
pandas中用函数isnull 和notnull 来检测数据丢失python pandas判断缺失值一般采用 isnull(),生成的是所有数据的true/false矩阵1 pd.isnull()元素级别的判断,把对应的所有元素的位置都列出来,元素为空或者NA就显示True,否则就是False会产生如下结果2 pd.isnull().any()列级别的判断,只要该列有为空...原创 2019-02-18 18:20:29 · 3558 阅读 · 0 评论 -
[522]numpy.meshgrid()理解
numpy.meshgrid()——生成网格点坐标矩阵。关键词:网格点,坐标矩阵网格点是什么?坐标矩阵又是什么鬼?看个图就明白了:图中,每个交叉点都是网格点,描述这些网格点的坐标的矩阵,就是坐标矩阵。再看个简单例子A,B,C,D,E,F是6个网格点,坐标如图,如何用矩阵形式(坐标矩阵)来批量描述这些点的坐标呢?答案如下:这就是坐标矩阵——横坐标矩阵X中的每个元素,与纵坐标矩阵...转载 2019-02-14 18:13:50 · 368 阅读 · 0 评论 -
[521]plt.cm.Spectral
例1# -*- coding:utf-8 -*-import numpy as npimport matplotlib.pyplot as pltnp.random.seed(1) # 产生相同的随机数X = np.random.randn(1, 10)Y = np.random.randn(1, 10)print(X,Y)label = np.array([1,1,0,0,0...原创 2019-02-14 18:13:13 · 8690 阅读 · 0 评论 -
[520]pandas(ix & iloc &loc)区别
loc——通过行标签索引行数据iloc——通过行号索引行数据ix——通过行标签或者行号索引行数据(基于loc和iloc 的混合)举例说明:1、分别使用loc、iloc、ix 索引第一行的数据:# -*- coding:utf-8 -*-import pandas as pd'''loc——通过行标签索引行数据 iloc——通过行号索引行数据 ix——通过行标签或者行号索引行数...原创 2019-02-14 18:12:29 · 1495 阅读 · 0 评论 -
[581]matplotlib(四)|Python中用matplotlib绘制盒状图(Boxplots)和小提琴图(Violinplots)
简单的盒状图import matplotlib.pyplot as pltimport numpy as np all_data = [np.random.normal(0, std, 100) for std in range(1, 4)] fig = plt.figure(figsize=(8,6)) plt.boxplot(all_data, notc...转载 2019-02-13 18:05:01 · 9753 阅读 · 1 评论 -
[541]matplotlib(三)|python中用matplotlib绘制条形图
带误差线的条形图import matplotlib.pyplot as plt # 输入数据mean_values = [1, 2, 3]variance = [0.2, 0.4, 0.5]bar_labels = ['bar 1', 'bar 2', 'bar 3'] # 绘制图形x_pos = list(range(len(bar_labels)))plt.bar(x_...转载 2019-02-13 18:04:21 · 3698 阅读 · 1 评论 -
[535]matplotlib(二)|python中用matplotlib绘制3D
来源:http://blog.topspeedsnail.com/archives/716#more-716。转载 2019-02-13 18:03:41 · 1908 阅读 · 1 评论 -
[519]matplotlib(一)|Python中用matplotlib绘制热点图(heat map)
import numpy as np # 高斯分布mean = [0,0]cov = [[0,1],[1,0]]x, y = np.random.multivariate_normal(mean, cov, 10000).T使用NumPy 的 histogram2d 函数from matplotlib import pyplot as plthist, xedges, ye...转载 2019-02-13 18:02:03 · 12763 阅读 · 7 评论 -
[508]pandas之read_table、read_csv、read_excel、read_sql
该函数返回pandas中的DataFrame或dict of DataFrame对象,利用DataFrame的相关操作即可读取相应的数据。数据准备,有一个Excel文件:excel_output.xlsx有两个表单,表单名分别为:Python 以及student。read_sql是综合了read_sql_table和read_sql_query的,所以一般用read_sql就好了。写入excel主要通过pandas构造DataFrame,调用to_excel方法实现。这样就把所有的文件都合并在了一起。原创 2019-01-30 12:35:58 · 3410 阅读 · 3 评论 -
[507]np.random.multivariate_normal()
np.random.multivariate_normal方法用于根据实际情况生成一个多元正态分布矩阵(正态分布基本概念),其在Python3中的定义如下:---------------------------正态分布基本概念-------------------------------正态分布,又称高斯分布。其特征为中间高两边低左右对称。它有以下几个性质:集中性:曲线的最高峰位于正中央...转载 2019-01-30 12:34:45 · 2690 阅读 · 0 评论 -
[455]pandas.DataFrame基本操作及缺失值处理
创建 DataFrame:df = pd.DataFrame(np.random.randint(0, 10, (2, 4)), columns=list('ABCD'))为 data frame 添加新的属性列df['total'] = df['A'] + df['B'] + df['C'] + df['D']# 等价于 df['total'] = df.A + df.B + df.C...原创 2018-12-13 18:23:32 · 22383 阅读 · 3 评论 -
[454]bokeh之bokeh.layouts
如果希望在同一张图上显示多个图像,可以使用bokeh.layouts类中的方法:row()column()gridplot()widgetbox()layout()row()row()的作用是将多个图像以行的方式放到同一张图中。from bokeh.io import output_file, showfrom bokeh.layouts import rowfrom bo...转载 2018-12-12 18:35:42 · 2185 阅读 · 0 评论 -
[453]Bokeh绘图--交互式数据可视化库Bokeh绘制基本图表
散点图圆形散点图,调用circle(),代码如下:# -*- coding:utf-8 -*-from bokeh.plotting import figure, output_file, show'''圆形散点图,调用circle()'''# 输出到静态HTML文件output_file("../html/line.html")p = figure(plot_width=400,...转载 2018-12-12 18:34:05 · 4155 阅读 · 0 评论 -
[452]Bokeh上手--交互式数据可视化库Bokeh快速入门
Bokeh是一款针对现代Web浏览器呈现功能的交互式可视化库。Bokeh通过Python(或其他语言)以快速简单的方式为超大型或流式数据集提供高性能交互的漂亮而且结构简单的多功能图形。为了提供高级自定义所需的简单性和强大而灵活的功能,Bokeh向用户公开了两个接口级别:bokeh.models为应用程序开发人员提供的最灵活的一个底层接口。bokeh.plotting以构成可视符号为中心...转载 2018-12-12 18:31:34 · 2115 阅读 · 0 评论 -
[451]pandas.get_dummies 的用法
get_dummies 是利用pandas实现one hot encode的方式。详细参数请查看官方文档pandas.get_dummies(data, prefix=None, prefix_sep=’_’, dummy_na=False, columns=None, sparse=False, drop_first=False)[source]参数说明:data : array-l...原创 2018-12-12 18:30:19 · 2402 阅读 · 0 评论 -
[450]numpy.newaxis用法
>> type(np.newaxis)NoneType>> np.newaxis == NoneTruenp.newaxis 在使用和功能上等价于 None,查看源码发现:newaxis = None,其实就是 None 的一个别名。np.newaxis,增加维度In [1]: np.linspace(1, 10, 10)Out[1]: array([ 1....原创 2018-12-12 18:29:17 · 739 阅读 · 0 评论 -
[449]python numpy(flatten,flat,ravel,reshape,resize)数组重组
numpy.flatten将数组变为一维ndarray.flatten(order='C')Parameters: order : {‘C’, ‘F’, ‘A’, ‘K’}, optional ‘C’ means to flatten in row-major (C-style) order. ...原创 2018-12-11 18:26:47 · 348 阅读 · 0 评论 -
[440]numpy.random中shuffle与permutation的区别
shuffle与permutation的区别函数shuffle与permutation都是对原来的数组进行重新洗牌(即随机打乱原来的元素顺序);区别在于shuffle直接在原来的数组上进行操作,改变原来数组的顺序,无返回值。而permutation不直接在原来的数组上进行操作,而是返回一个新的打乱顺序的数组,并不改变原来的数组。示例:a = np.arange(12)print anp....原创 2018-12-04 18:03:39 · 184 阅读 · 0 评论 -
[439]numpy.random.seed()和numpy.random.RandomState()用法
Numpy.random.seed()设置seed()里的数字就相当于设置了一个盛有随机数的“聚宝盆”,一个数字代表一个“聚宝盆”,当我们在seed()的括号里设置相同的seed,“聚宝盆”就是一样的,那当然每次拿出的随机数就会相同(不要觉得就是从里面随机取数字,只要设置的seed相同取出地随机数就一样)。如果不设置seed,则每次会生成不同的随机数。(注:seed括号里的数值基本可以随便设置哦...原创 2018-12-04 18:02:39 · 3614 阅读 · 0 评论 -
[437]numpy库数组拼接np.concatenate()函数
在实践过程中,会经常遇到数组拼接的问题,基于numpy库concatenate是一个非常好用的数组操作函数。1、concatenate((a1, a2, …), axis=0)官方文档详解concatenate(...) concatenate((a1, a2, ...), axis=0) Join a sequence of arrays along an existing...原创 2018-11-29 18:23:53 · 5030 阅读 · 1 评论 -
[391]matplotlib.pyplot中的hist函数
区分直方图与条形图: 条形图是用条形的长度表示各类别频数的多少,其宽度(表示类别)则是固定的; 直方图是用面积表示各组频数的多少,矩形的高度表示每一组的频数或频率,宽度则表示各组的组距,因此其高度与宽度均有意义。 由于分组数据具有连续性,直方图的各矩形通常是连续排列,而条形图则是分开排列。 条形图主要用于展示分类数据,而直方图则主要用于展示数据型数据 官方文档...原创 2018-08-30 17:21:54 · 36667 阅读 · 2 评论 -
[71]pandas分组与聚合
分组 (groupby)对数据集进行分组,然后对每组进行统计分析SQL能够对数据进行过滤,分组聚合pandas能利用groupby进行更加复杂的分组运算分组运算过程:split->apply->combine拆分:进行分组的根据应用:每个分组运行的计算规则合并:把每个分组的计算结果合并起来 - 示例代码:import pandas as pd...原创 2018-06-14 09:08:49 · 356 阅读 · 0 评论 -
[55]数据清洗、合并、转化和重构
数据清洗是数据分析关键的一步,直接影响之后的处理工作数据需要修改吗?有什么需要修改的吗?数据应该怎么调整才能适用于接下来的分析和挖掘?是一个迭代的过程,实际项目中可能需要不止一次地执行这些清洗操作处理缺失数据:pd.fillna(),pd.dropna()1.数据连接(pd.merge)pd.merge根据单个或多个键将不同DataFrame的行连接起来类似数据库的连接...原创 2018-06-12 08:55:56 · 1429 阅读 · 0 评论