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

news/2024/10/21 11:53:27/

实验准备:

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(电影数据库查询)

python">#导入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(对于数据进行降序排列的参数设置)

python"># 创建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.实际应用

python"># 找出哪家电影公司拥有最多最高票房的电影
# 使用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.ppmy.cn/news/1435709.html

相关文章

面试——数据库中的锁升级(Lock Escalation)机制

假设执行下面的sql语句 update tb_user set age age 1;以MySQL为例&#xff0c;按照两阶段锁协议&#xff0c;会先给tb_user加上表意向锁&#xff0c;然后对tb_user的所有行加上行锁&#xff0c;但是当tb_user数据量非常多的时候&#xff0c;频繁的获取行锁会影响性能&#…

excel 按照姓名日期年月分组求和

excel 需要按照 姓名 日期的年份进行金额求和统计&#xff0c;采用sumifs 进行统计 注意&#xff1a;sumifs 不支持 合并列拆分计算&#xff0c;合并列只会计算一个值 表格数据大概如下&#xff1a;(sheet) ABC姓名日期金额A2023/01/01500A2023/01/151500B2023/01/01200B202…

线性代数-知识点复习(面试用)

整理&#xff1a;Peter1146717850 一、向量与线性组合 向量&#xff1a;往什么方向走多么远 e.g. ( 1 2 ) \begin{pmatrix} 1 \\ 2\end{pmatrix} (12​) 向量的模&#xff1a;向量的长度 向量的加减法&#xff1a;向量对应元素相加减&#xff08;前提&#xff1a;维度相同…

动态规划---斐波那契数列模型

目录 一、斐波那契数列的基本概念 二、动态规划在斐波那契数列中的应用与优势 三、实际案例&#xff1a;使用动态规划解决斐波那契数列问题 四、动态规划问题的做题步骤 五、例题 1、第N个泰波那契数---点击跳转题目 2、三步问题----点击跳转题目 3、最小花费爬楼梯---…

文件摆渡:安全、高效的摆渡系统助力提升效率

很多组织和企业都会通过网络隔离的方式来保护内部的数据&#xff0c;网络隔离可以是物理隔离&#xff0c;也可以是逻辑隔离&#xff0c;如使用防火墙、VPN、DMZ等技术手段来实现&#xff0c;隔离之后还会去寻找文件摆渡方式&#xff0c;来保障日常的业务和经营需求。 进行网络隔…

【数据结构】串(String)

文章目录 基本概念顺序存储结构比较当前串与串s的大小取子串插入删除其他构造函数拷贝构造函数扩大数组空间。重载重载重载重载[]重载>>重载<< 链式存储结构链式存储结构链块存储结构 模式匹配朴素的模式匹配算法(BF算法)KMP算法字符串的前缀、后缀和部分匹配值nex…

C++ | Leetcode C++题解之第48题旋转图像

题目&#xff1a; 题解&#xff1a; class Solution { public:void rotate(vector<vector<int>>& matrix) {int n matrix.size();// 水平翻转for (int i 0; i < n / 2; i) {for (int j 0; j < n; j) {swap(matrix[i][j], matrix[n - i - 1][j]);}}//…

【24届数字IC秋招总结】正式批面试经验汇总9——飞腾

文章目录 一、飞腾-IC验证工程师1.1 面试问题&#xff08;验证部&#xff09;1.2 面试问题&#xff08;处理器核&#xff09; 一、飞腾-IC验证工程师 面试时间&#xff1a;9.27 1.1 面试问题&#xff08;验证部&#xff09; 1、自我介绍 2、实习做什么 3、AHB协议的内容 4、…