数据分析
【numpy+pandas】把玩你的数据
捌椒
这个作者很懒,什么都没留下…
展开
-
两个地理坐标距离计算
操作步骤:导包使用geodesic()函数from geopy.distance import geodesicprint(geodesic((31.237872, 121.470259), (31.246946, 121.513919)).m) #计算两个坐标直线距离 # 4279.081922014711结果:4279.081922014711那么,给定一组经纬度坐标的二维数组如何对每个位置的距离进行计算?注意: calculate_distance()方法使用np.li原创 2021-10-24 19:22:01 · 1478 阅读 · 3 评论 -
数据分析之获取前N最大、最小值或索引
首先,为了获取前N的最大最小值或者索引,下面介绍了两种方法,大家可以视情况选择:1、利用heapq模块,heapq模块中有两个函数:nlargest()nsmallest()他们可以找到列表,元组,集合等数据结构中的最大或最小的n个元素,并以列表的形式返回。此方法只适用于数组无序且没有重复元素;否则,会出现键值匹配混乱。2、利用pandas模块排序sort_values(), 默认从小到大sort_values(ascending = False),从大到小排序1. 获取数组前 N原创 2021-10-29 17:57:52 · 1101 阅读 · 0 评论 -
数据分析之pandas数据排列【sort_values()、sort_index()】
Pandas 支持三种排序方式,按索引标签排序,按列里的值排序,按两种方式混合排序。按值排序:sort_values()Series.sort_values() 方法用于按值对 Series 排序。DataFrame.sort_values() 方法用于按行列的值对 DataFrame 排序。df 相关参数:by :行名/列名 多字段排序时 by =[‘字段一’, ‘字段二’])axis :默认按列排序。如果axis=0,那么by=“列名”; 如果axis=1,那么by=“行名”;asc原创 2022-04-17 11:10:20 · 1459 阅读 · 0 评论 -
数据分析之pandas读写文件【to_csv,read_csv】及Numpy之间的转换
1. pandas读写数据操作1.1 to_csv()相关参数path:路径,可以是相对路径也可以绝对路径。只填写文件名则为相对路径sep:分隔符,如果不写默认为 “,”。header:是否保留列名,0 为不保存,默认为 True。index:是否保留行索引,0 为不保存,默认为 True。columns:保留某列或者某些列数据。na_rep:替换空值,如果不写,默认是空。float_format:数据保存的格式,例:float_format=’ %.2f ’ 保留两位小数a = n原创 2021-10-21 21:51:06 · 2190 阅读 · 0 评论 -
数据分析之pandas学习【获取最大、小值和索引(idxmin、idxmax)】
这里写目录标题dataFrameSeriesdataFrame默认的话,axis=0,idxmax会在每一列去找一个最大值当我们在axis=1时,也就是按行来找最大值import numpy as npimport pandas as pddf = pd.DataFrame(np.random.randint(low=1, high=10, size=(3, 3)), columns=['a', 'b', 'c'])id_a = df.idxmax(axis=1) # 打印每一行最大值原创 2022-03-07 13:34:24 · 7937 阅读 · 0 评论 -
数据分析(十一)之pandas时间序列
数据分析学习线路图现在我们有2015到2017年25万条911的紧急电话的数据,请统计出出这些数据中不同类型的紧急情况的次数,如果我们还想统计出不同月份不同类型紧急电话的次数的变化情况,应该怎么做呢?数据来源:https://www.kaggle.com/mchirico/montcoalert/data 1.查看数据信息 方法1import pandas as pdimport numpy as npfrom matplotlib import pyplot as pltdf =原创 2020-12-24 10:47:38 · 577 阅读 · 0 评论 -
数据分析(十)之数据的分组聚合和matplotlib小练习
下面为练习中所用到的数据集https://download.csdn.net/download/qq_40926887/137475881. 使用matplotlib呈现出店铺总数排名前10的国家# coding=utf-8import pandas as pdfrom matplotlib import pyplot as pltimport matplotlib# windws和linux设置字体的放font = {'family': 'MicroSoft YaHei', .原创 2020-12-21 17:46:21 · 345 阅读 · 0 评论 -
数据分析(九)之数据的合并、分组聚合
数据分析学习线路图3、数据的合并3.1 数据的合并之join思考:如果 t2.jion(t1) 会怎样如果 t2.jion(t1) ,那么就会以t2数据为基准,jion()之后,那么t1的C行会丢掉。3.2 数据的合并之merge动手练习:4、数据的分组聚合现在我们有一组关于全球星巴克店铺的统计数据,如果我想知道美国的星巴克数量和中国的哪个多,或者我想知道中国每个省份星巴克的数量的情况,那么应该怎么办? 思路:遍历一遍,每次加1 ??? 数据来源:https://www.ka原创 2020-12-21 12:40:10 · 744 阅读 · 0 评论 -
数据分析(八)之pandas常用统计方法小练习
pandas常用统计方法练习1: 假设现在我们有一组从2006年到2016年1000部最流行的电影数据,我们想知道这些电影数据中评分的平均分,导演的人数等信息,我们应该怎么获取?数据来源:https://www.kaggle.com/damianpanek/sunday-eda/data# coding=utf-8import pandas as pdimport numpy as npfile_path = "IMDB-Movie-Data.csv"df = pd.read_csv原创 2020-12-18 10:39:40 · 713 阅读 · 0 评论 -
数据分析(七)之pandas学习【dataFrame的使用】
数据分析学习线路图2、dataFrame的基本用法2.1 dataFrame的创建方法2:import numpy as npimport pandas as pdt = pd.DataFrame(np.arange(12).reshape((3, 4)), index=list("ABC"), columns=list("WXYZ"))print(t)输出: W X Y ZA 0 1 2 3B 4 5 6 7C 8 9 10原创 2020-12-17 11:53:04 · 635 阅读 · 0 评论 -
数据分析(六)之pandas学习【Series创建、切片、索引和读取外部数据】
数据分析学习线路图为什么要学习pandas?那么问题来了:numpy已经能够帮助我们处理数据,能够结合matplotlib解决我们数据分析的问题,那么pandas学习的目的在什么地方呢?numpy能够帮我们处理处理数值型数据,但是这还不够很多时候,我们的数据除了数值之外,还有字符串,还有时间序列等比如:我们通过爬虫获取到了存储在数据库中的数据比如:之前youtube的例子中除了数值之外还有国家的信息,视频的分类(tag)信息,标题信息等所以, numpy能够帮助我们处理数值,但是pand原创 2020-12-15 20:42:24 · 1670 阅读 · 0 评论 -
数据分析之Numpy创建二维空数组
利用pandas和numpy的关系方法1先创建空的df将df转np通过np的append,np.r[],np.cp[],等函数添加# 首先,我们创建一个仅有列名、而没有索引和值的空DataFrame:over_rsu = np.array(pd.DataFrame(columns=range(2)))a = np.array([[1, 2], [3, 4]])over_rsu = np.append(a, over_rsu, axis=0)print(over_rsu)输出[[1原创 2022-04-11 21:05:38 · 6450 阅读 · 2 评论 -
数据分析之Numpy去除全零行或列【np.all()】
1. np.all()作用np.all(arr,axis=0),表示在垂直方向上计算元素的与运算(AND)np.all(arr,axis=1),表示在水平方向上计算元素的与运算(AND)arr = np.array([[1, 1], [0, 1]])boolean = np.all(arr, axis=1) # 矩阵行方向做与运算boolean2 = np.all(arr, axis=0) # 矩阵列方向做与运算print(boolean)print("*" * 20)print原创 2022-04-11 21:36:27 · 5676 阅读 · 0 评论 -
数据分析之Numpy数组copy和view【注意细节!!】
1. Numpy 数组拷贝【copy】a = np.arange(10)print(a)b = aprint(b is a)b[2] = 21print(a, b) # a和b 指向同一个值,所以a改变,b 一起改变c = a.copy()print(c is a)c[0] = 66print(a, c) # copy方法生成数组及其数据的完整拷贝j输出:[0 1 2 3 4 5 6 7 8 9]True[ 0 1 21 3 4 5 6 7 8 9] [原创 2021-10-21 17:28:44 · 306 阅读 · 0 评论 -
数据分析之Numpy常用方法【array_equal()、unique()】
np.array_equal()1、该方法可以检查两个数组是否具有相同的形状和元素。2、该方法还可用在数组和列表之间、列表与列表间的比较# 一维数组,或者列表a = np.array([1, 3, 5, 7, 9])b = np.array([2, 4, 6, 8, 0])list_a = [1, 3, 5, 7, 9] # 列表,在python中一维数组被称为列表,numpy则叫做数组list_b = [2, 4, 6, 8, 0]copy_a = np.array([1, 3,原创 2021-10-24 17:50:36 · 4649 阅读 · 0 评论 -
数据分析之numpy常用方法【获取最大、小值、数组拼接】
这里写目录标题1. 获取numpy数组中的最大值:np.argmax()1.1 一维数组1.2 二维数组2. numpy中的数组拼接2.1 concatenate()方法2.2 append()方法2.3 其他1. 获取numpy数组中的最大值:np.argmax()1.1 一维数组a = [7, 2, 9, 4, 5]arr_a = np.array(a)b = np.array([[12, 14, 15], [10, 20, 30], [9, 7, 4]])max_a_index = np.原创 2021-09-17 19:35:47 · 1824 阅读 · 0 评论 -
数据分析之Numpy常用方法【多维数组转换为一维数组 flatten()】
将numpy多维数组转换为一维数组有两种方法使用reshape()函数,这个方法是间接法,利用reshape()函数的属性,间接的把二维数组转换为一维数组使用flatten()函数, 推荐使用这个方法,这个方法是numpy自带的函数import numpy as nparr = np.arange(12).reshape(3, 4)print(arr)d_1 = arr.flatten()print(d_1)print("------------------------")ar原创 2022-03-29 09:33:10 · 5962 阅读 · 0 评论 -
数据分析之Numpy取消numpy科学计数法【详解np.set_printoptions()】
numpy中默认是使用科学计数法来显示数据的,但是这种做法往往不利于我们观测数据,比如坐标数据等。那么如何取消numpy科学计数法呢,请往下看。np.set_printoptions()相关参数precision=None, 精度,int 或者None。浮点输出的精度位数(默认值为 8)。如果浮点模式不固定,则可能为 None,以根据需要打印尽可能多的数字以唯一指定值。threshold=None, 阈值, 默认为 1000edgeitems=None, 每个维度的开头和结尾处的摘要数组项数原创 2022-04-16 20:58:41 · 5711 阅读 · 2 评论 -
数据分析之Numpy常用方法【np.newaxis()改变维度、np.clip()截取函数】
1. np.newaxis()np.newaxis()的功能:插入新维度import numpy as nparr = np.arange(6)arr_row = arr[:, np.newaxis] # 扩展行,将数组的每行转换成列,arr_col = arr[np.newaxis, :]print(arr.shape)print(arr)print(arr_row)print(arr_col)输出:(6,)[0 1 2 3 4 5][[0] [1] [2] [3]原创 2022-03-20 11:22:47 · 2047 阅读 · 0 评论 -
数据分析之Numpy常用方法【等差数列:np.linspace()、取整:np.ceil() ,np.floor()】
这里写目录标题1. np.linspace()2. np.ceil() ,np.floor()1. np.linspace()np.linspace() 主要用于生成等差数列,相关参数如下:start:起始点stop:终止点 【包含】num : 生成start和stop之间num个等差间隔的元素,默认50,endpoint :生成等差间隔为 (stop - start)/num 的元素,默认为Trueretstep:返回一个(array,num)元组,array是结果数组,num是间隔大小,原创 2022-03-07 11:29:39 · 1656 阅读 · 0 评论 -
数据分析之np.random.choice()补充【从二维数组随机选择n行一维数组】
相关参数size:从元组,列表,数组中取多少个数据,不写,默认为1个replace:是否可以取相同元素:True:可以,False:不可以,默认是Truep:实际是个数组,大小与数组相同,用来规定选取数组中每个元素的概率,默认为概率相同。注意:概率相加等于1A = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 7, 6], [3, 2,原创 2021-12-02 11:26:54 · 3685 阅读 · 0 评论 -
数据分析之Numpy常用随机方法【random.randint(),random.choice(),random.uniform(),random.normal()】
这里写目录标题常用的随机方法1. random.randint()2. random.choice()3.np.linspace()4. np.ceil() ,np.floor()常用的随机方法1. random.randint()t = np.random.randint(0, 20, (3, 4))t2 = np.random.randint(20, size=(3, 4)) # 默认low从 0开始.print(t)print("------------------")print(t原创 2021-10-22 10:51:56 · 1839 阅读 · 0 评论 -
数据分析(五)之numpy数组拼接拷贝、行列互换、随机方法及与matplotlib动手练习
练习所需要的数据集数据分析(1-5)代码用到的数据集动手练习1读取英国和美国各自youtube1000的数据,结合之前matplotlib绘制出各自的评论数量的直方图希望了解英国的youtube中视频的评论数和喜欢数的关系,应该如何绘制改图解答:对于评论数和喜欢数的关系我们应该画一个散点图import numpy as npfrom matplotlib import pyplot as pltus_file_path = "./youtube_video_data/US_video_原创 2020-12-14 17:04:20 · 495 阅读 · 0 评论 -
数据分析(四)之numpy读取本地数据和索引
数据分析学习线路图2、numpy读取本地数据CSV:Comma-Separated Value,逗号分隔值文件显示:表格状态源文件:换行和逗号 分隔行列的格式化文本,每一行的数据表示一条记录由于csv便于展示,读取和写入,所以很多地方也是用csv的格式存储和传输中小型的数据,为了方便教学,我们会经常操作csv格式的文件,但是操作数据库中的数据也是很容易的实现的2.1、实现方法np.loadtxt(fname,dtype=np.float,delimiter=None,skiprows=0,原创 2020-12-13 20:29:33 · 374 阅读 · 2 评论 -
数据分析(三)之numpy数组学习【shape、reshape、flatten】
数据分析学习线路图1、什么是numpy?一个在Python中做科学计算的基础库,重在数值计算,也是大部分PYTHON科学计算库的基础库,多用于在大型、多维数组上执行数值运算 。1.1 numpy常用的数据类型数据类型的操作1.2 使用numpy创建数组import numpy as npimport random# 使用numpy生成数组,得到ndarray的类型t1 = np.array([1, 2, 3, ])print(t1) # [1 2 3]print(type原创 2020-12-13 11:41:39 · 324 阅读 · 0 评论 -
数据分析(二)之matplotlib绘制其他图形
数据分析学习线路图2、matplotlib绘制散点图假设通过爬虫你获取到了北京2016年3,10月份每天白天的最高气温(分别位于列表a,b),那么此时如何寻找出气温和随时间(天)变化的某种规律?a = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]b = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22原创 2020-12-11 18:28:59 · 337 阅读 · 0 评论 -
数据分析(一)之matplotlib折线图
数据分析学习线路图1、matplotlib 折线图matplotlib: 最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建。其优点在于:能将数据进行可视化,更直观的呈现使数据更加客观、更具说服力1.1 一个例子假设一天中每隔两个小时(range(2,26,2))的气温(℃)分别是[15,13,14.5,17,20,25,26,26,27,22,18,15]结果输出:但是目前存在以下几个问题:设置图片大小(想要一个高清无码大图)原创 2020-12-10 19:58:21 · 1295 阅读 · 4 评论