什么是Python虚拟环境?

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

为什么要搭建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虚拟环境

前言

各位编程小白们,大家好!踏上Python学习之旅的你,是否对海量数据感到一丝迷茫?面对表格中密密麻麻的数字和文字,是不是渴望能有一种工具,像魔术师一样,轻松驾驭它们,从中发现有价值的秘密?那么,恭喜你,你找对地方了!

我们将开启Pandas的学习之旅。Pandas是Python数据科学领域的一颗璀璨明星,它被称为“数据分析的瑞士军刀”。对于初学者来说,它可能听起来有些高深,但别担心,我们将用最通俗易懂的方式,带你一步步揭开它的神秘面纱。

想象一下,你有一大堆Excel表格、CSV文件,甚至是数据库里的数据,想要进行整理、清洗、分析和可视化。如果用传统的Python列表和字典来操作,那简直是噩梦。而Pandas的出现,就是为了解决这些痛点。它提供了高效、灵活的数据结构,让你能够像操作熟悉的电子表格一样处理数据,并且速度更快,功能更强大。

在本系列的第一篇中,我们将初步探索Pandas中最核心、最常用的数据结构——DataFrame。你会学会如何导入数据,快速查看数据概貌,了解数据的基本信息,并对数据进行简单的排序。这些都是你未来深入学习数据分析、机器学习甚至人工智能的基石。准备好了吗?让我们一起迈出数据分析的第一步,感受Pandas的魅力吧!

Pandas介绍

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

项目实战

有一个表格如下所示:

1、加载数据

def load_data():
"""
加载CSV文件并返回DataFrame
"""
df = pd.read_csv('students.csv')
print("\n1. 数据加载结果:")
print(df.head())
return df

df.head() 是一个非常常用的方法,它被调用在一个 DataFrame 对象(通常命名为 df)上。它的主要目的是显示 DataFrame 的前几行数据

效果:

2、查看数据基本信息

def basic_info(df):
"""
显示数据基本信息
"""
print("\n2. 数据基本信息:")
print("\n数据形状(行数,列数):")
print(df.shape)
print("\n数据类型信息:")
print(df.info())
print("\n数据统计描述:")
print(df.describe())

df.shape 是一个重要的属性。它的作用是返回 DataFrame 的维度(形状),也就是它的行数和列数

df.info() 是一个有用的方法,它用于打印 DataFrame 的简洁摘要信息

df.describe() 是一个强大的方法,它能快速生成 DataFrame 中数值型列的描述性统计信息

效果:

3、数据选择

def select_data(df):
"""
数据选择操作示例
"""
print("\n3. 数据选择操作:")
print("\n选择单列 'name':")
print(df['name'])
print("\n选择多列 'name' 和 'score':")
print(df[['name', 'score']])
print("\n条件筛选:分数大于90的学生")
print(df[df['score'] > 90])

效果:

4、数据排序

def sort_data(df):
"""
数据排序操作
"""
print("\n4. 数据排序:")
print("\n按分数降序排序:")
print(df.sort_values('score', ascending=False))
print("\n按年龄升序、分数降序排序:")
print(df.sort_values(['age', 'score'], ascending=[True, False]))

df.sort_values() 是一个常用的方法,用于根据 DataFrame 中一个或多个列的值来对行进行排序

效果:

5、分组统计

def group_data(df):
"""
分组统计操作
"""
print("\n5. 分组统计:")
print("\n按科目分组计算平均分:")
print(df.groupby('subject')['score'].mean())
print("\n按年级分组计算各科目平均分:")
print(df.groupby(['grade', 'subject'])['score'].mean())

df.groupby() 用于执行“分组聚合操作。

效果:

6、数据添加和修改操作

def add_modify_data(df):
"""
数据添加和修改操作
"""
print("\n6. 数据添加和修改:")
# 添加新列:及格状态
df['pass_status'] = df['score'].apply(lambda x: 'Pass' if x >= 60 else 'Fail')
print("\n添加及格状态列后的数据:")
print(df)

效果:

7、数据可视化

def data_visualization(df):
"""
基础数据可视化
"""
print("\n7. 数据可视化:")
# 创建科目平均分数的柱状图
plt.figure(figsize=(10, 6))
df.groupby('subject')['score'].mean().plot(kind='bar')
plt.title('Average Score by Subject')
plt.xlabel('Subject')
plt.ylabel('Average Score')
plt.tight_layout()
plt.savefig('subject_scores.png')
plt.close()
print("已生成科目平均分数柱状图:subject_scores.png")

df.groupby('subject'):这是 groupby 操作的第一步。它告诉 Pandas,根据 DataFrame 中 'subject'(科目)列的唯一值来将数据进行分组。

['score'].mean():它会计算每个 'subject' 组中所有 'score' 值的平均值

.plot(kind='bar').plot()这是 Pandas 提供的一个便捷绘图接口,它底层使用了 Matplotlib 库。kind='bar' 表示生成一个**条形图 **。

效果:

适用于编程小白的Python学习01:Pandas初探的更多相关文章

  1. “编程小白学python”阅读笔记

    今天在豆瓣搜索“python”关键字,搜到一本知乎周刊,读来觉得不错 编程小白学python ,作者@萧井陌, @Badger 书中提到的很多书,第一次看惊呆了,记录下来,希望每周回看此博文,坚持学习 ...

  2. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  3. Python学习01 Hello World

    Python学习之Hello World 准备工作 去官网http://www.python.org/ 下载python的安装包: http://www.python.org/download/ 当前 ...

  4. python学习-01

    1.编程语言分类: 编译型:(由编译器将代码编译成计算机识别的二进制文件)C \C++ \C#    运行速度较解释型语言快 解释型:(在运行时进行编译)python.php.sheel.ruby.j ...

  5. python学习01

    1.python怎样运行? 1)打开运行窗口,输入python 2)打开运行窗口,直接输入 python + python代码  `python -c "print(1/6.878)&quo ...

  6. Python3之turtle的基本用法#Python学习01#

    一.turtle基本语法 1.导入turtle 模块import turtle 2.显示箭头turtle.showturtle() 3.写字符串turtle.write("因小米" ...

  7. python学习 01 变量

    1.变量不是‘盒子’. 1.1 不同的值,变量名没变,   变量地址也会变. 1.2 相同的值,不同的变量名,变量地址是相同的

  8. Python学习之正则表达式初探

    正则表达式 正则表达式 (或 regexes ) 是通用的文本模式匹配的方法. Django URLconfs 允许你 使用任意的正则表达式来做强有力的URL映射,不过通常你实际上可能只需要使用很少的 ...

  9. 读书分享全网学习资源大合集,推荐Python学习手册等三本书「01」

    0.前言 在此之前,我已经为准备学习python的小白同学们准备了轻量级但超无敌的python开发利器之visio studio code使用入门系列.详见 1.PYTHON开发利器之VS Code之 ...

  10. 小白学 Python 数据分析(7):Pandas (六)数据导入

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

随机推荐

  1. JavaScript 获取鼠标点击位置坐标(转载自https://www.cnblogs.com/dolphinX/archive/2012/10/09/2717119.html )

    在一些DOM操作中我们经常会跟元素的位置打交道,鼠标交互式一个经常用到的方面,令人失望的是不同的浏览器下会有不同的结果甚至是有的浏览器下没结果,这篇文章就上鼠标点击位置坐标获取做一些简单的总结,没特殊 ...

  2. Win10微软拼音输入法设置-注册表

    修改候选项窗口 HKEY_CURRENT_USER\Software\Microsoft\InputMethod\CandidateWindow\CHS\1 EnableFixedCandidateC ...

  3. Maven导包报错Could not resolve dependencies for projectXXX was cached in the local repository....

    问题 将项目和maven仓库一起拿到了内网环境,一直报错无法解析依赖was cached in the local repository, resolution will not be reattem ...

  4. 应对海量数据挑战,如何基于Euro NCAP标准开展高效智驾测试与评估?

    一.前言 随着自动驾驶技术的快速发展,庞大的测试数据和复杂的场景需求为性能与安全评估带来了巨大挑战.如何高效管理海量数据.挖掘关键场景,并满足以Euro NCAP(European New Car A ...

  5. Linux四剑客grep、find、sed、awk使用

    ‌介绍 Linux四剑客‌是指在Linux系统中非常常用的四个命令工具,它们分别是grep.find.sed和awk.这四个工具在Linux系统中具有非常强大的功能,可以方便快捷地对文本进行搜索.处理 ...

  6. 2025dsfz-KMP学习笔记

    KMP 前言:这把高端局 关于KMP 时间复杂度为 \(O(n+m)\) 的优秀字符串查找算法. 适用于在句子/文章中查找一段文字(词语). KMP实现 关于共同前后缀数组(PMT) 说人话就是 \( ...

  7. sonarqube+gitlab+jenkins+maven集成搭建(三)

    安装JENKINS 关闭防火墙[root@localhost ~]# systemctl stop firewalld[root@localhost ~]# systemctl disable fir ...

  8. 69.9K star!这个API调试神器让你告别Postman,开源免费真香!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 Hoppscotch 是一款专为开发者打造的轻量级API调试工具,凭借其极简的界面设计和强大 ...

  9. 【HUST】网络攻防实践|TCP会话劫持+序列号攻击netcat对话

    文章目录 一.前言 1. 实验环境 2. 攻击对象 3. 攻击目的 4. 最终效果 docker的使用 新建docker docker常用指令 二.正式开始 过程记录 1. ARP欺骗 2. 篡改数据 ...

  10. K8s进阶之Deployment的更新&回滚

    更新概述 更新指的是对 Deployment 所管理应用的配置.镜像版本等进行修改并应用到集群中的过程.通过更新 Deployment,你能够实现应用功能的升级.修复漏洞.调整资源分配等操作. 更新触 ...