上机练习 8: DataFrame 综合练习

记录一下做的练习题

目录

1)自定义一个 Series 并命名为 s1,自定义索引值,采用随机数作为其中数据尝试使用 s1.sum(计算其中所有数据的和,使用 s.mean(计算其中所有数据的平均值。

2)创建一个形状为4*6的 DataFrame 并命名为 df1,并指定行索引为[“a”,“b”,“c”,"d"]、列索引为[“A",“B”,“C”,“D”,“E”,“F”],元素的取值为 1-100 之间的随机数。

3)对 df1 中的数据进行过滤,删除"B"列中不大于 70 的元素所在的行。

4) 以列表的形式输出 df1 各列中元素的平均值。

5) 以列表的形式输出 df1 各行中元素的和。

6) 自定义函数 df extend()实现如下功能: 传入一个 DataFrame,该函数会在该 DataFrame 中添加一列,列索引为“SUM”,其中的元素为各列元素的和。然后再添加一行,行索引为“MEAN”,其中的元素为各列元素的平均值。

7)自定义数 max three()实现如下功能: 传入一个 DataFrame,该函数会以列表的方式返回该 DataFrame 中最大的三个元素的坐标;(用元组表示坐标,例如:[(2,4),(3,6),(1,5)] 。

import numpy as np
import pandas as pd

1)自定义一个 Series 并命名为 s1,自定义索引值,采用随机数作为其中数据尝试使用 s1.sum(计算其中所有数据的和,使用 s.mean(计算其中所有数据的平均值。

#(1)
data = np.random.RandomState(16).randint(0,100,16)
index = range(1,17)
s1 = pd.Series(data=data,index=index)
print(s1)
print(s1.sum())
print(s1.mean())

2)创建一个形状为4*6的 DataFrame 并命名为 df1,并指定行索引为[“a”,“b”,“c”,"d"]、列索引为[“A",“B”,“C”,“D”,“E”,“F”],元素的取值为 1-100 之间的随机数。

#(2)
data1 = np.random.RandomState(16).randint(0,100,24)
df1 = pd.DataFrame(data=data1.reshape(4,6),index=["a","b","c","d"],columns=["A","B","C","D","E","F"])
print(df1)

3)对 df1 中的数据进行过滤,删除"B"列中不大于 70 的元素所在的行。

#(3)
df2 = df1.drop([i for i in df1[df1.B <= 70].index],axis=0)
print(df2)

4) 以列表的形式输出 df1 各列中元素的平均值。

5) 以列表的形式输出 df1 各行中元素的和。

#(4)
list_1 = []
for lie in df1.columns:list_1.append(df1.loc[:,lie].mean())
print(list_1)#(5)
list_2 = []
for hang in df1.index:list_2.append(df1.loc[hang].sum())
print(list_2)

6) 自定义函数 df extend()实现如下功能: 传入一个 DataFrame,该函数会在该 DataFrame 中添加一列,列索引为“SUM”,其中的元素为各列元素的和。然后再添加一行,行索引为“MEAN”,其中的元素为各列元素的平均值。

#(6)
def df_extend(df1):sum_lie = 0for lie in df1.columns:sum_lie = sum_lie + df1.loc[:,lie].sum() df1.insert(loc=0,column="SUM",value=sum_lie)mean_hang = 0for hang in df1.index:mean_hang = mean_hang + df1.loc[hang].mean()df1.loc[4] = mean_hangprint(df1)df_extend(df1)

7)自定义数 max three()实现如下功能: 传入一个 DataFrame,该函数会以列表的方式返回该 DataFrame 中最大的三个元素的坐标;(用元组表示坐标,例如:[(2,4),(3,6),(1,5)] 。

#(7)
def max_three(df1):list_value = []list_position = []for lie in df1.columns:for hang in df1.index:list_value.append(df1[lie][hang])list_position.append((hang,lie))dic = {k:v for k, v in zip(list_position, list_value)}list_value.sort(reverse=True)position_keys = [key for key, value in dic.items() if value in list_value[:3]]if len(position_keys) >= 3:position_keys = position_keys[:3]print(position_keys)max_three(df1)

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

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

相关文章

高德地图系列(三):vue项目利用高德地图实现地址搜索功能

目录 第一章 效果图 第二章 源代码 第一章 效果图 高德地图为我们提供了搜索联想&#xff0c;以及搜索结果标记&#xff0c;该案例已将基础功能打通&#xff0c;后续我们肯定还会对功能有所修改,想实现自己想要的效果&#xff0c;基本上看高德地图文档对着改就好了&#xf…

【深度学习实验】网络优化与正则化(七):超参数优化方法——网格搜索、随机搜索、贝叶斯优化、动态资源分配、神经架构搜索

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、优化算法0. 导入必要的库1. 随机梯度下降SGD算法a. PyTorch中的SGD优化器b. 使用SGD优化器的前馈神经网络 2.随机梯度下降的改进方法a. 学习率调整b. 梯度估计修正 3. 梯度估计修正&#xff1a;动量法Momen…

Es 拼音搜索无法高亮

目录 背景&#xff1a; Es 版本&#xff1a; 第一步 第二步 &#xff08;错误步骤 - 只是记录过程&#xff09; 第三步 第四步 第五步 第六步 第七步 背景&#xff1a; app 原有的搜索功能无法进行拼音搜索&#xff0c;产品希望可以支持&#xff0c;例如内容中含有&a…

IDEA插件下载到本地

IDEA插件下载到本地 官网下载【点击跳转】

Vue路由 replace属性 控制浏览记录不能前进或后退

默认是push模式 表示页面一直增加&#xff0c;用户可以操作返回上一个页面 replace 模式 <router-link replace :to"{path:/user,query:{ id:123,age:666 }} ">跳转用户</router-link><!--replace true表示浏览器不能后退浏览记录-->

Netty传输object并解决粘包拆包问题

⭐️ 前言 大家好&#xff0c;笔者之前写过一篇文章&#xff0c;《Netty中粘包拆包问题解决探讨》&#xff0c;就Netty粘包拆包问题及其解决方案进行了探讨&#xff0c;本文算是这篇博客的延续。探讨netty传输object的问题。 本文将netty结合java序列化来传输object并解决粘包…

el-table中el-popover失效问题

场景&#xff1a;先有一个数据表格&#xff0c;右侧操作栏为固定列&#xff0c;另外有一个字段使用了el-popover来点击弹出框来修改值&#xff0c;发现不好用&#xff0c;点击后无法显示弹出框&#xff0c;但当没有操作栏权限时却意外的生效了。 这种问题真是不常见&#xff0…

编译中的 CMP0148 警告

原因&#xff1a;CMake 3.12后&#xff0c; FindPythonInterp 及 FindPythonLibs被废弃 解决方法&#xff1a;使用 FindPython3、FindPython2、FindPython替换 实例&#xff1a;CMakeLists.txt中修改即可&#xff0c;如下图

微信小程序Error: ENOENT: no such file

问题描述 当编译的时候 会提示找不到这个文件&#xff08;index&#xff09;&#xff0c;但是确信项目目录里已经删除了该页面路径&#xff0c;并且app.json的pages列表中也 导致这个问题应该是&#xff1a;新添加了文件&#xff0c;后面删除了或者修改了文件名&#xff0c;导…

RabbitMQ 部署及配置详解(集群部署)

单机部署请移步&#xff1a; RabbitMQ 部署及配置详解 (单机) RabbitMQ 集群是一个或 多个节点&#xff0c;每个节点共享用户、虚拟主机、 队列、交换、绑定、运行时参数和其他分布式状态。 一、RabbitMQ 集群可以通过多种方式形成&#xff1a; 通过在配置文件中列出群集节点以…

6 Spring循环依赖

什么是循环依赖&#xff1f; // A依赖了B class A{ public B b; } // B依赖了A class B{ public A a; } 如果不考虑Spring&#xff0c;循环依赖并不是问题&#xff0c;因为对象之间相互依赖是很正常的事情 A a new A(); B b new B(); a.b b; b.a a; 这样&#xff0c;A&a…

echarts 横向柱状图示例

该示例有如下几个特点&#xff1a; ①实现tooltip自定义样式&#xff08;echarts 实现tooltip提示框样式自定义-CSDN博客&#xff09; ②实现数据过多时滚动展示&#xff08;echarts 数据过多时展示滚动条-CSDN博客&#xff09; ③柱状图首尾展示文字&#xff0c;文字内容嵌入图…