找回密码
 立即注册
首页 业界区 业界 适用于编程小白的Python学习01:Pandas初探 ...

适用于编程小白的Python学习01:Pandas初探

郏琼芳 2025-6-25 09:37:57
什么是Python虚拟环境?

Python虚拟环境是一个独立的、隔离的Python运行环境,它允许你为每个项目安装独立的库和依赖项,而不会与系统中其他Python项目或全局Python环境发生冲突,从而有效地管理项目依赖、避免版本问题,并确保项目在不同机器上具有可复制性。
1.png

为什么要搭建Python虚拟环境?

1、管理项目依赖
Python生态系统拥有庞大的第三方库和框架,比如用于数据科学的Pandas、NumPy,用于Web开发的Django、Flask等。你的项目很可能需要依赖这些库。
隔离性: 不同的项目可能依赖同一个库的不同版本。例如,项目A需要requests库的1.0版本,而项目B需要requests库的2.0版本。如果没有独立的环境,直接全局安装,就会导致版本冲突,影响一个或两个项目的正常运行。搭建独立环境(如使用venv或conda)可以为每个项目创建独立的依赖沙箱,互不影响。
可复制性: 当你与团队成员协作或将项目部署到服务器时,需要确保所有人都使用相同的库版本。通过环境管理工具,你可以轻松地导出项目所需的依赖列表(例如requirements.txt文件),其他人可以根据这个列表快速搭建出一致的运行环境,确保代码在不同机器上都能正常运行。
2、避免全局污染
如果你将所有项目的依赖都安装到系统全局Python环境中,会导致全局环境变得臃肿和混乱。
冲突风险: 全局安装的库可能与系统自身依赖的Python库发生冲突,甚至可能影响操作系统的稳定性。
版本管理困难: 难以追踪哪些库是为哪个项目安装的,也无法轻易卸载某个项目的特定依赖,增加了管理难度。
3、使用不同的Python版本
有时候,不同的项目可能需要不同版本的Python解释器。例如,一个老项目可能只兼容Python 3.6,而一个新项目可能需要Python 3.9的新特性。
多版本共存: 环境管理工具允许你在同一台机器上安装并管理多个Python版本,并在不同项目之间轻松切换。
VS Code如何搭建Python虚拟环境

2.png

3.png

4.png

前言

各位编程小白们,大家好!踏上Python学习之旅的你,是否对海量数据感到一丝迷茫?面对表格中密密麻麻的数字和文字,是不是渴望能有一种工具,像魔术师一样,轻松驾驭它们,从中发现有价值的秘密?那么,恭喜你,你找对地方了!
我们将开启Pandas的学习之旅。Pandas是Python数据科学领域的一颗璀璨明星,它被称为“数据分析的瑞士军刀”。对于初学者来说,它可能听起来有些高深,但别担心,我们将用最通俗易懂的方式,带你一步步揭开它的神秘面纱。
想象一下,你有一大堆Excel表格、CSV文件,甚至是数据库里的数据,想要进行整理、清洗、分析和可视化。如果用传统的Python列表和字典来操作,那简直是噩梦。而Pandas的出现,就是为了解决这些痛点。它提供了高效、灵活的数据结构,让你能够像操作熟悉的电子表格一样处理数据,并且速度更快,功能更强大。
在本系列的第一篇中,我们将初步探索Pandas中最核心、最常用的数据结构——DataFrame。你会学会如何导入数据,快速查看数据概貌,了解数据的基本信息,并对数据进行简单的排序。这些都是你未来深入学习数据分析、机器学习甚至人工智能的基石。准备好了吗?让我们一起迈出数据分析的第一步,感受Pandas的魅力吧!
5.png

Pandas介绍

Pandas 是 Python 编程语言中一个强大且广泛使用的开源数据分析和操作工具库。它基于 NumPy 库构建,提供了高效的数据结构,使得处理结构化数据变得简单、快速且直观。可以把它想象成一个功能强大的电子表格软件,但拥有编程的灵活性和自动化能力。
项目实战

有一个表格如下所示:
6.png

1、加载数据
  1. def load_data():
  2.     """
  3.     加载CSV文件并返回DataFrame
  4.     """
  5.     df = pd.read_csv('students.csv')
  6.     print("\n1. 数据加载结果:")
  7.     print(df.head())
  8.     return df
复制代码
df.head() 是一个非常常用的方法,它被调用在一个 DataFrame 对象(通常命名为 df)上。它的主要目的是显示 DataFrame 的前几行数据
效果:
7.png

2、查看数据基本信息
  1. def basic_info(df):
  2.     """
  3.     显示数据基本信息
  4.     """
  5.     print("\n2. 数据基本信息:")
  6.     print("\n数据形状(行数,列数):")
  7.     print(df.shape)
  8.     print("\n数据类型信息:")
  9.     print(df.info())
  10.     print("\n数据统计描述:")
  11.     print(df.describe())
复制代码
df.shape 是一个重要的属性。它的作用是返回 DataFrame 的维度(形状),也就是它的行数和列数
df.info() 是一个有用的方法,它用于打印 DataFrame 的简洁摘要信息
df.describe() 是一个强大的方法,它能快速生成 DataFrame 中数值型列的描述性统计信息
效果:
8.png

3、数据选择
  1. def select_data(df):
  2.     """
  3.     数据选择操作示例
  4.     """
  5.     print("\n3. 数据选择操作:")
  6.     print("\n选择单列 'name':")
  7.     print(df['name'])
  8.     print("\n选择多列 'name' 和 'score':")
  9.     print(df[['name', 'score']])
  10.     print("\n条件筛选:分数大于90的学生")
  11.     print(df[df['score'] > 90])
复制代码
效果:
9.png

4、数据排序
  1. def sort_data(df):
  2.     """
  3.     数据排序操作
  4.     """
  5.     print("\n4. 数据排序:")
  6.     print("\n按分数降序排序:")
  7.     print(df.sort_values('score', ascending=False))
  8.     print("\n按年龄升序、分数降序排序:")
  9.     print(df.sort_values(['age', 'score'], ascending=[True, False]))
复制代码
df.sort_values() 是一个常用的方法,用于根据 DataFrame 中一个或多个列的值来对行进行排序
效果:
10.png

5、分组统计
  1. def group_data(df):
  2.     """
  3.     分组统计操作
  4.     """
  5.     print("\n5. 分组统计:")
  6.     print("\n按科目分组计算平均分:")
  7.     print(df.groupby('subject')['score'].mean())
  8.     print("\n按年级分组计算各科目平均分:")
  9.     print(df.groupby(['grade', 'subject'])['score'].mean())
复制代码
df.groupby() 用于执行“分组聚合操作。
效果:
11.png

6、数据添加和修改操作
  1. def add_modify_data(df):
  2.     """
  3.     数据添加和修改操作
  4.     """
  5.     print("\n6. 数据添加和修改:")
  6.     # 添加新列:及格状态
  7.     df['pass_status'] = df['score'].apply(lambda x: 'Pass' if x >= 60 else 'Fail')
  8.     print("\n添加及格状态列后的数据:")
  9.     print(df)
复制代码
效果:
12.png

7、数据可视化
  1. def data_visualization(df):
  2.     """
  3.     基础数据可视化
  4.     """
  5.     print("\n7. 数据可视化:")
  6.     # 创建科目平均分数的柱状图
  7.     plt.figure(figsize=(10, 6))
  8.     df.groupby('subject')['score'].mean().plot(kind='bar')
  9.     plt.title('Average Score by Subject')
  10.     plt.xlabel('Subject')
  11.     plt.ylabel('Average Score')
  12.     plt.tight_layout()
  13.     plt.savefig('subject_scores.png')
  14.     plt.close()
  15.     print("已生成科目平均分数柱状图:subject_scores.png")
复制代码
df.groupby('subject'):这是 groupby 操作的第一步。它告诉 Pandas,根据 DataFrame 中 'subject'(科目)列的唯一值来将数据进行分组。
['score'].mean():它会计算每个 'subject' 组中所有 'score' 值的平均值
.plot(kind='bar'):.plot()这是 Pandas 提供的一个便捷绘图接口,它底层使用了 Matplotlib 库。kind='bar' 表示生成一个**条形图 **。
效果:
13.png


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册