用 pandas 解一道小题。炼到了表格创建、表格写入磁盘文档、读取行、读取列、整个表格输出和条件筛选。
Python 官网:
https://www.python.org/
这里,才 python 前沿。可惜是英文原版。所以,我要练习英文阅读。🧐🧐
- 我的CSDN主页
- My Python 学习个人备忘录
- 我的HOT博
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
本文档持续编辑中…
用 pandas 来完成昨天的练习题目。练习到了表格创建、表格写入磁盘文档、读取行、读取列、整个表格输出和条件筛选。可以移步昨天学习打卡帖“2022-03-23 学习打卡”,看看代码截屏图先。
用 pandas 来完解一道小题
题目
昨天的练习四个函数的题目,今天用来炼 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忽略警告