数据仓库与数据挖掘(实验一2024.4.24)

实验准备:

1.下载conda

2.配置环境C:\ProgramData\miniconda3\Scripts

3.创建文件夹panda进入虚拟环境qq

激活虚拟环境:activate qq

启动jupyter lab(python语言环境编译):jupyter lab

4.panda下载

(1)官网panda下载:pandas - Python Data Analysis Library (pydata.org)

(2)虚拟环境的panda下载

一、panda练习1(电影数据库查询)

#导入panda,以pd为简写
import pandas as pd#读取文件 
pd.read_csv('movies.csv')

1.简单的数据查询

描述:该部分基本为对DataFrame进行的操作,并没有修改csv文件中的内容


常用方法:head、tail、len()、shape(行列)、size、dypes、iloc[](查看第几条数据) 、loc[](获取数据详细信息)、sort_values(by=[' ' , ' ']).head()、sort_index()_head()

注:ascending = False(对于数据进行降序排列的参数设置)

# 创建DataFrame对象movies,设置
movies = pd.read_csv('movies.csv', index_col='Title')# 查看前4行数据
movies.head(4)# 查看最后6行数据
movies.tail(6)# 查询总共有多少条数据
len(movies)# 通过panda的DataFrame获取数据的形状:行数、列数
movies.shape# 查询一共有多少个单元格(cell)
movies.size# 验证
# 一共782行数据,每行有4个属性,除了作为index的Title
782 * 4# 查询每一列的数据类型
movies.dtypes# 查看第500条数据
movies.iloc[499]# 通过 index label 获取 DataFrame 中的数据
# 现在的 index 是 Title(《阿甘正传》)
movies.loc['Forrest Gump']# 通过index label可以检索出具有相同index label的数据记录
# 但是,通常尽量让每条数据的index label是唯一的,
# 这样可以加速数据定位
movies.loc['101 Dalmatians']# 对DataFrame中的数据按照year以降序方式重新排序
# head()用来现实前5条数据
movies.sort_values(by='Year', ascending=False).head()# 根据多个列的值进行排序
# 默认按照升序排序
movies.sort_values(by=['Studio', 'Year']).head()# 按照index进行排序
movies.sort_index().head()

 2.实际应用

# 找出哪家电影公司拥有最多最高票房的电影
# 使用Series:只有一列数据
# pandas在Series中保留DataFrame的索引
# 由于数据太多,默认只显示前5条和后5条数据
# Studio制片厂
movies['Studio']# 统计每个Studio出现的次数,并显示排在前10的Studio
# 返回值为Series对象
movies['Studio'].value_counts().head(10)# 通过规则过滤数据
# 找出 Universal Studio 发行的电影
movies[movies['Studio'] == 'Universal']# 通过变量保存过滤规则
released_by_unviersal = (movies['Studio'] == 'Universal')
movies[released_by_unviersal].head()# 通过多个条件过滤DataFrame中的行数据
# 找出2015年Universal Studio发行(released)的电影的各项数据
# released_by_universal(由环球发行)
released_by_unviersal = movies['Studio'] == 'Universal'
released_in_2015 = movies['Year'] == 2015
movies[released_by_unviersal & released_in_2015]# 通过多个条件过滤DataFrame中的行数据
# 找出在2015发行或者是Universal Studio发行的电影的各项数据
released_by_unviersal = movies['Studio'] == 'Universal'
released_in_2015 = movies['Year'] == 2015
movies[released_by_unviersal | released_in_2015]# 过滤出满足指定范围的数据
# 找出1975年之前发行的电影
before_1975 = movies['Year'] < 1975
movies[before_1975]# 指定某个值的范围
mid_80s = movies['Year'].between(1983, 1986)
movies[mid_80s]# 使用DataFrame的index进行过滤
# 找出所有在名字中包含 dark 的电影
# 将所有的title先转换为小写
has_dark_in_title = movies.index.str.lower().str.contains('dark')
movies[has_dark_in_title]# grouping data
# 找出在所有电影中,哪个Studio的总收入最高
# pandas在导入数据时,包含了$和逗号,先把他们去掉
movies['Gross'].str.replace('$', '', regex=False).str.replace(',', '', regex=False)# 再把文本类型的Gross转换为数字类型
movies['Gross'] = movies['Gross'].str.replace('$', '', regex=False).str.replace(',', '', regex=False).astype(float)# 计算平均票房收入
movies['Gross'].mean()# 计算每个电影制片厂的总票房
# groupby
studios = movies.groupby('Studio')# 统计每个每个Studio发行了几步电影
studios['Gross'].count().head()
# 默认按照字母顺序排序# 改为按照发行的电影数量降序排序
studios['Gross'].count().sort_values(ascending=False).head()# 计算每个Studio发行电影的总票房
studios['Gross'].sum().head()
# 默认按照Studio的字母顺序排序# 按照总票房顺序排序
studios['Gross'].sum().sort_values(ascending=False).head()

二、panda练习2(待续。。。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/828232.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTB Runner

Runner User Nmap ──(root㉿kali)-[/home/…/machine/SeasonV/linux/Runner] └─# nmap -A runner.htb -T 4 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-22 23:07 EDT Stats: 0:00:01 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Sca…

用户中心 -- 代码理解

一、删除表 & if 删除表 1.1 DROP TABLE IF EXISTS user 和 DROP TABLE user 网址&#xff1a; 用户管理第2节课 -- idea 2023.2 创建表--【本人】-CSDN博客 二、 代码 2.1 清空表中数据 的 命令 【truncate 清空】 网址&#xff1a; 用户管理第2节课 -- idea 2…

iOS开发进阶(二十):Xcode 断点调试详解

文章目录 一、前言二、断点调试技巧2.1 设置断点2.2 断点的自定义设置2.3 断点类型 一、前言 所谓断点&#xff0c;其实就是一个让应用暂停运行的机制&#xff0c;这是为了方便开发人员执行调试&#xff0c;查看寄存器的某些值。既然设置了断点&#xff0c;可以让应用停在某一…

Ajax和axios基础

AJAX Asynchronous JavaScript And XML 异步的JavaScript和XML 作用 数据交换: 通过Ajax可以给服务器发送请求,服务器将数据直接响应回给浏览器. 异步交互: 可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术. 同步和异步 同步发送请求: 浏览器发…

Linux中Ctrl+C和Ctrl+Z的区别_实战讲解(超详细)

1、CtrlC和CtrlZ的区别&#xff1a; CtrlZ&#xff1a;暂停进程 即挂起进程 暂停当前进程并将其放到后台。可以在后续恢复执行。 暂停的进程仍然占用系统内存 CtrlC&#xff1a;终止进程 终止进程后&#xff0c;程序代码占用的内存会释放掉 2、实战讲解 跑人工智能代码的时候…

redis故障中出现的缓存击穿、缓存穿透、缓存雪崩?

一、背景&#xff1a; 在维护redis服务过程中&#xff0c;经常遇见一些redis的名词&#xff0c;例如缓存击穿、缓存穿透、缓存雪崩等&#xff0c;但是不是很理解这些&#xff0c;如下就来解析一下缓存击穿、缓存穿透、缓存雪崩名词。 二、缓存穿透问题&#xff1a; 常见的缓存使…

flutter ios Firebase 消息通知错误 I-COR000005,I-FCM001000 解决

*前提是已经 使用firebase-tools 已经给 Flutter 加入了 消息通知相关配置。教程>> 一、I-COR000005 10.22.0 - [FirebaseCore][I-COR000005] No app has been configured yet. import Firebase....FirebaseApp.configure() 10.22.0 - [FirebaseMessaging][I-FCM001000…

mysql事故复盘: 单行字节最大阈值65535字节(原创)

背景 记得还在银行做开发&#xff0c;投产上线时&#xff0c;项目发版前&#xff0c;要提DDL的sql工单&#xff0c;mysql加1个字段&#xff0c;因为这张表为下游数据入湖入仓用的&#xff0c;长度较大。在测试库加字段没问题&#xff0c;但生产库字段加不上。 先说结论 投产…

QT初识

通过图形化界面输出helloworld 既然学习了QT&#xff0c;那么自然要做经典的输出helloworld字符串的实验。 QT有两好几种方案输出helloworld&#xff0c;一种是通过图形化界面输出&#xff0c;一种是通过代码实现。 这里先了解图形化界面的方案。 创建项目后&#xff0c;点…

LeetCode:2385. 感染二叉树需要的总时间(DFS Java)

目录 2385. 感染二叉树需要的总时间 题目描述&#xff1a; 实现代码与解析&#xff1a; DFS 原理思路&#xff1a; 2385. 感染二叉树需要的总时间 题目描述&#xff1a; 给你一棵二叉树的根节点 root &#xff0c;二叉树中节点的值 互不相同 。另给你一个整数 start 。在第…

【论文阅读】互连网络的负载平衡路由算法 (RLB RLBth)

前言Oblivious Load Balancing 不经意路由负载平衡 1. oblivious routing 不经意/无关路由的背景知识 1. oblivious routing, adaptive routing & minimal/non-minimal routing algorithms 2. Balancing a 1-Dimensional ring: RLB and RLBth 一维 ring 的 RLB and RLBth 1…

如何设计一个安全的系统架构?

本文转自 公众号 ByteByteGo&#xff0c;如有侵权&#xff0c;请联系&#xff0c;立即删除 如何设计一个安全的系统架构&#xff1f; 如何设计安全的系统&#xff1f;我们总结了 12 条原则供架构师们参考。 设计安全的系统非常重要&#xff0c;原因有很多&#xff0c;从保护敏…

SpringCloud系列(13)--Eureka服务名称修改和服务IP显示

前言&#xff1a;在上一章节中我们把服务提供者做成了集群&#xff0c;而本章节则是一些关于服务信息的配置&#xff0c;这部分知识对集群整体影响不大&#xff0c;不过最好还是掌握&#xff0c;毕竟万一有用到的地方呢 1、修改服务的名称 有时候我们想要修改服务的名称&#…

JavaSE学习文档(上)

JavaSE学习文档 第一章 Java概述1.2 计算机编程语言1.3 Java语言版本概述1.4 Java语言分类1.5 JDK,JRE,JVM的关系1.6 JDK安装1.7 DOS命令1.8 Java程序执行过程1.9 编写HelloWorld1.10 常见错误1.11 编写程序时要注意的点 第二章 Java基础语法2.1 Java中的注释文档注释 2.2 关键…

武汉星起航:亚马逊全球资源赋能中国卖家,跨境电商助力品牌国际化

亚马逊全球开店业务于2015年正式进驻中国&#xff0c;为中国卖家打开了通往全球市场的便捷之门。这一举措不仅为中国卖家提供了与全球消费者直接交流的机会&#xff0c;更借助亚马逊的丰富资源和先进技术&#xff0c;帮助卖家将优质的中国商品推向世界舞台。亚马逊平台以其高效…

Ant Design Vue + js 表格计算合计

1.需要计算的数量固定&#xff08;如表1&#xff0c;已知需要计算的金额为&#xff1a;装修履约保证金 装修垃圾清运费出入证工本费 出入证押金 这四项相加&#xff0c;可以写成固定的算法&#xff09;&#xff1a; 表格样式&#xff1a; <h4 style"margin: 0 0 8px…

Bayes判别示例数据:鸢尾花数据集

使用Bayes判别的R语言实例通常涉及使用朴素贝叶斯分类器。朴素贝叶斯分类器是一种简单的概率分类器&#xff0c;基于贝叶斯定理和特征之间的独立性假设。在R中&#xff0c;我们可以使用e1071包中的naiveBayes函数来实现这一算法。下面&#xff0c;我将通过一个简单的示例展示如…

《生成式AI导论》学习笔记

1.课程定位 2.什么是生成式人工智慧&#xff1f; 3. 今日的生成式人工智慧厉害在哪里&#xff1f; 4.训练不了人工智慧&#xff1f;那我训练自己 5.训练不了人工智慧&#xff1f;你可以训练你自己&#xff08;中&#xff09;——拆解问题使用工具 6.大语言模型修炼史——第一阶…

微信小程序使用echarts组件实现饼状统计图功能

微信小程序使用echarts组件实现饼状统计图功能 使用echarts实现在微信小程序中统计图的功能&#xff0c;具体的实现步骤思路可进我主页查看我的另一篇博文https://blog.csdn.net/weixin_45465881/article/details/138171153进行查看&#xff0c;本篇文章主要使用echarts组件实…

Redis(六) Set集合类型

文章目录 前言命令SADDSMEMBERSSISMEMBERSCARDSPOPSMOVESREM集合间操作SINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE 命令小结 内部编码使用场景 前言 集合类型也是保存多个字符串类型的元素的&#xff0c;和列表类型不同的是&#xff0c;set集合类型中的元素是无序的且…