> 文档中心 > 用 pandas 解一道小题。炼到了表格创建、表格写入磁盘文档、读取行、读取列、整个表格输出和条件筛选。

用 pandas 解一道小题。炼到了表格创建、表格写入磁盘文档、读取行、读取列、整个表格输出和条件筛选。



Python 官网

https://www.python.org/

  这里,才 python 前沿。可惜是英文原版。所以,我要练习英文阅读。🧐🧐

  • 我的CSDN主页
  • My Python 学习个人备忘录
  • 我的HOT

   自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  本文档持续编辑中…

  用 pandas 来完成昨天的练习题目。练习到了表格创建、表格写入磁盘文档、读取行、读取列、整个表格输出和条件筛选。可以移步昨天学习打卡帖“2022-03-23 学习打卡”,看看代码截屏图先。

pandas 来完解一道小题


  1. 题目
  2. 代码运行效果
  3. 表格创建
    a. 列表元素创建表格
    b. 字典元素创建表格
  4. 重置索引
  5. 转换器完整代码

题目

在这里插入图片描述

  昨天的练习四个函数的题目,今天用来炼 pandas 的基本操作。🤗🤗


回首页


代码运行效果

在这里插入图片描述

  用 pandas 也一样解了那个小题。😁😁

回首页


表格创建

代码运行效果

在这里插入图片描述

创建表格的数据

names = ['张三', '李四', '王五', '赵六']grades1 = 85, 90, 92, 60 # 可以不加小括号,python 默认元组收集赋值。grades2 = 78, 98, 32, 89grades3 = tuple(map(lambda x, y: 0.3 * x + 0.7 * y, grades1, grades2)) # 用 map() 函数生成最终成绩。grades4 = tuple([0.3 * x + 0.7 * y for x, y in zip(grades1, grades2)]) # 也可以用 zip() + 列表解析生成最终成绩。
   grade3 和 grade4 语句是同效的,只是用不同方式生成最终成绩。
注意:创建表格的参数( pandas.DataFrame() 的第一个参数)只能是列表和字典,生成行列的数据(列表的元素、字典的键值)只能是列表。

回首页


  • 列表元素创建表格

df = pd.DataFrame([  names,   list(grades1),   list(grades2),   list(grades3)]) # 列表元素用 pandad 的 DataFrame 框架生成成绩列表。
  列表元素创建表格,默认是列,默认字段是 0 始序的数字。这不大符合我们一行一条记录的数据(表格元素)的使用习惯,表格“样子”见前面的代码运行效果第一个表格。

回首页


  • 字典元素创建表格

df = pd.DataFrame(  {'Name': names,   'Grade1': list(grades1),   'Grade2': list(grades2),   'Grade3': list(grades3)}      )
  字典元素创建表格,key 字符是默认是列名(表格字段),键值(列表)是列数据,一行一条记录这才是我们熟悉的样子,后面的操作练习都用这张表格。表格“容颜”就是前面的代码运行效果第二个表格。

  字典元素也创建列表格, pandas.DataFrame() 第二个参数 columns 可以缺省,写明也是一样的效果请看代码:

df = pd.DataFrame(  {'Name': names,   'Grade1': list(grades1),   'Grade2': list(grades2),   'Grade3': list(grades3)},      columns = [     'Name',      'Grade1',      'Grade2',      'Grade3']      )

代码输出

成绩列表(字典元素 key 为表头 value 列表纵向排列):  Name  Grade1  Grade2  Grade30   张三      85      78    80.11   李四      90      98    95.62   王五      92      32    50.03   赵六      60      89    80.3

回首页


重置索引

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

完整 Python 代码

(如果从语句注释不能清楚作用,请评论区留言指教和探讨。🤝)
#!/usr/bin/env python# codung: utf-8'''习题练习:昨天的题目,用我正确鼓捣的 pandas 来解。filename: practice220323.pyAuthor: 梦幻精灵_cq'''print(f'\n\n\n{"正在加载 pandas ……":^35}\n')import pandas as pdimport mypythontools as pyt# codes beginnames = ['张三', '李四', '王五', '赵六']grades1 = 85, 90, 92, 60 # 可以不加小括号,python 默认元组收集赋值。grades2 = 78, 98, 32, 89grades3 = tuple(map(lambda x, y: 0.3 * x + 0.7 * y, grades1, grades2)) # 用 map() 函数生成最终成绩。grades4 = tuple([0.3 * x + 0.7 * y for x, y in zip(grades1, grades2)]) # 也可以用 zip() + 列表解析生成最终成绩。df = pd.DataFrame([  names,   list(grades1),   list(grades2),   list(grades3)])# 列表元素用 pandad 的 DataFrame 框架生成成绩列表。print(f'\n\n成绩列表(列表元素默认横向排列):\n\n{df}\n\n')df = pd.DataFrame(  {'Name': names,   'Grade1': list(grades1),   'Grade2': list(grades2),   'Grade3': list(grades3)}      )# 字典元素用 pandad 的 DataFrame 框架生成成绩列表。print(f'\n\n成绩列表(字典元素 key 为表头 value 列表纵向排列):\n\n{df}\n\n')df.to_excel('/sdcard/001/成绩表.xlsx') # 将表格写入磁盘文档。df.to_excel('/sdcard/001/成绩表.xlsx', index = False) # 将表格写入磁盘文档。df.set_index('Name') # 建立真正有意义的索引(修改默认索引)print(f'\n\n成绩列表(用 Name 字段修改默认索引):\n\n{df}\n\n')df.set_index('Name', inplace = True) # 修改默认索引要用 inplace = True 令其生效才可以成功。print(f'\n\n成绩列表(用 Name 字段修改默认索引):\n\n{df}\n\n')s = f'\n\n{"解 1. 小题":.^36}\n\n'print(f'{s}按 1 始序输出姓名:\n\n')for k, i in enumerate(df.index): # 枚举遍历表格新建姓名索引。    print(f'{k + 1:>12}. {i}\n') # 逐个输出姓名s = f'\n\n{"解 2. 小题":.^36}\n\n'print(f"{s}'平时 : 期末' = 3 : 7 计算最终成绩:\\n\nGrades3 = {list(df['Grade3'])}\n") # # df.Grade3 与 df['Grafe3'] 同效,前者表达式的前提是字段要是遵循 python 命名规则的字符s = f'\n\n{"解 3. 小题":.^36}\n\n'name_grades = list(zip(range(1,5), names, grades1, grades2, grades3))print(f'{s}成绩列表:\n\n{df}\n\n') # 直接打印电子表格。s = f'\n\n{"解 4. 小题":.^36}\n\n'print(f'{s}分数低于 60 的有:\n\n\{df[(df.Grade1 < 60) | (df.Grade2 < 60) | (df.Grade3 < 60)]}\n\n')# 直接筛选。同时满足条件 & ,满足其中一个 | 。# 注意:每个条件表达式,要用小括号包起来。

回首页


上一篇: 练习:可迭代的对象和四个函数

下一篇:


我的HOT博:

  • “快乐数”判断(1181阅读)
  • 罗马数字转换器(构造元素取模)(1884阅读)
  • 罗马数字(转换器|罗生成器)(2473阅读)
  • Hot:让QQ群昵称色变的代码(9780阅读)
  • 斐波那契数列(递归| for )(2777阅读)
  • 柱状图中最大矩形(1619阅读)
  • 排序数组元素的重复起止(1211阅读)
  • 电话拨号键盘字母组合(1251阅读)
  • 密码强度检测器(1699阅读)
  • 求列表平衡点(1745阅读)
  • 字符串统计(3009阅读)
  • Hot:尼姆游戏(聪明版首发)(3277阅读)尼姆游戏(优化版)(854阅读)
推荐条件 点阅破千

Python 入门指南【Python 3.6.3】


好文力荐:

  • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
  • 靠谱程序员的好习惯

回首页


老齐漫画头像

精品文章:

  • 好文力荐:《python 完全自学教程》书稿连载
  • OPP三大特性:封装中的property
  • 通过内置对象理解python'
  • 正则表达式
  • python中“*”的作用
  • Python 完全自学手册
  • 海象运算符
  • Python中的 `!=`与`is not`不同
  • 学习编程的正确方法

来源:老齐教室


CSDN实用技巧博文:

  • 8个好用到爆的Python实用技巧
  • python忽略警告