码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 上机练习 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)] 。

    1. import numpy as np
    2. import pandas as pd

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

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

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

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

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

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

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

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

    1. #(4)
    2. list_1 = []
    3. for lie in df1.columns:
    4. list_1.append(df1.loc[:,lie].mean())
    5. print(list_1)
    6. #(5)
    7. list_2 = []
    8. for hang in df1.index:
    9. list_2.append(df1.loc[hang].sum())
    10. print(list_2)

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

    1. #(6)
    2. def df_extend(df1):
    3. sum_lie = 0
    4. for lie in df1.columns:
    5. sum_lie = sum_lie + df1.loc[:,lie].sum()
    6. df1.insert(loc=0,column="SUM",value=sum_lie)
    7. mean_hang = 0
    8. for hang in df1.index:
    9. mean_hang = mean_hang + df1.loc[hang].mean()
    10. df1.loc[4] = mean_hang
    11. print(df1)
    12. df_extend(df1)

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

    1. #(7)
    2. def max_three(df1):
    3. list_value = []
    4. list_position = []
    5. for lie in df1.columns:
    6. for hang in df1.index:
    7. list_value.append(df1[lie][hang])
    8. list_position.append((hang,lie))
    9. dic = {k:v for k, v in zip(list_position, list_value)}
    10. list_value.sort(reverse=True)
    11. position_keys = [key for key, value in dic.items() if value in list_value[:3]]
    12. if len(position_keys) >= 3:
    13. position_keys = position_keys[:3]
    14. print(position_keys)
    15. max_three(df1)

  • 相关阅读:
    【SpringMVC】SpringMVC实现转发和重定向
    Flex布局和Float布局的实现
    循环神经网络(RNN)
    【洛谷P1225】黑白棋游戏【DFS】【状压】
    目标检测:Generalized Focal Loss V2(CVPR2020)
    Docker安装MySQL8.0报错记录
    微服务SpringCloud___day1
    如何关联分段代码表生成统计报表
    SpringBoot文件上传
    C语言题解 | 消失的数字&轮转数组
  • 原文地址:https://blog.csdn.net/naozibuok/article/details/134468874
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号