更有效地使用 Python Pandas 的 4 个技巧
off999 2025-07-07 22:19 102 浏览 0 评论
一个简单而实用的指南
照片由simon sun在Unsplash上拍摄
Pandas 是一个用于数据分析和操作任务的非常实用且功能强大的库。自 2019 年以来,我一直在使用 Pandas,它始终能够为我的任务提供解决方案。
在使用 Pandas 大约 3 年后,我意识到一开始我并没有非常有效地使用它。在某些情况下,我解决特定问题的方法比最佳解决方案要长。我也没有非常有效和准确地使用某些功能。
我仍然能够完成任务。然而,当我发现更优化和实用的做事方式时,我的整个工作流程都得到了改进。
在本文中,我将分享 4 个技巧,帮助您充分利用 Pandas。让我们从创建一个示例 DataFrame 开始,以在示例中使用。
将 numpy 导入为 np
将 pandas 导入为 pddf = pd.DataFrame({
"团队": ["A","A","B","B","B",np.nan,np.nan,"C"],
"玩家": [
“约翰”、“简”、“阿什莉”、“艾米丽”、“马特”、“珍妮”、“麦克斯”、“亚历克斯”
]、
“得分”:[81、84、np.nan、91、np。南, 86, 94, 89]
})dfdf(作者图片)
我们有一个包含 3 列和 8 行的 DataFrame,并且在 team 和 score 列中存在一些缺失值。
1. 带空值的 value_counts 函数
value_counts 函数是 Pandas 最常用的函数之一。它计算列中每个不同值的出现次数。默认情况下,它不考虑空值(即缺失值)。这可能会产生误导,尤其是在我们处理大文件时。
df["团队"].value_counts()# 输出
B 3
A 2
C 1
名称:团队,数据类型:int64team 列中有空值,但我们在 value_counts 函数的输出中看不到它们。我们可以使用下面的 dropna 参数使其计算空值。
df["团队"].value_counts(dropna=False)# 输出
B 3
A 2
NaN 2
C 1
名称:团队,dtype:int64现在输出更准确。
2. 使用其他列填充缺失值
现实生活中的数据集通常包含不能总是被忽略的缺失值。我们需要妥善处理它们以产生准确可靠的输出。
我们有不同的选项来填充缺失值。最优的取决于数据和任务的特性。例如,我们可以使用列平均值来填充缺失值。处理时间序列数据时,上一个或下一个值可能是更好的选择。
另一种选择是使用其他列中的数据。在我们的 DataFrame 中,我们可以使用 player 列填充 team 列中的缺失值。我将向您展示完成这项任务的两种不同技术。第一个是使用 loc 方法手动选择缺失值。
df.loc[df["Team"].isna()==True, "Team"] = df["Player"]左侧选择团队列中的缺失值。右侧将玩家列中的值分配给这些值。
第二种是直接使用fillna函数。
df["Team"].fillna(df["Player"], inplace=True)dfdf(作者图片)
3. 使用 Python 字典
字典是 Python 的内置数据结构。它在数据分析和操作中的各种任务中派上用场。我们还可以将它们与 Pandas 函数一起使用,以使它们更有用。
例如,replace 函数用于替换列或 DataFrame 中的值。考虑我们有一个包含每个球员的球队数据的球队字典。
团队= {
“约翰”:“A”,
“简”:“A”,
“阿什利”:“B”,
“艾米丽”:“B”,
“马特”:“B”,
“珍妮”:“C” ,
“最大”:“C”,
“亚历克斯”:“C”
}我们可以使用这个字典将球队列中的球员姓名替换为他们的球队名称。
df["团队"] = df["团队"].replace(团队)dfdf(作者图片)
我们也可以按如下方式执行此操作:
df["Team"] = df["Team"].replace("Jenny","C")
df["Team"] = df["Team"].replace("Max","C")这绝对不如使用字典方便。此外,我们可能有几个值要替换。在这种情况下,无需编写几行代码,而是使用字典只需一行即可完成任务。
您可以使用 Python 字典增强其他一些 Pandas 函数。这是我写的关于这个主题的更详细的文章。
4. 缺失值的整数列
分数列中的值是整数,但它们显示为浮点数。原因是此列中的缺失值。
整数的默认数据类型不支持空值,因此数据类型向上转换为浮点数。如果将这些值表示为整数很重要,则可以使用可为空的整数数据类型。
df["Score"] = df["Score"].astype(pd.Int64Dtype())dfdf(作者图片)
现在分数显示为整数。
数据清理和操作是任何面向数据的产品的重要组成部分。Pandas 提供了多种功能和方法来加快和简化您的工作流程。为了充分利用 Pandas,您应该尝试发掘任何功能的全部潜力。
您可以成为Medium 会员,以解锁对我的作品以及 Medium 其他内容的完全访问权限。如果您已经是,如果您想在我发布新文章时收到电子邮件,请不要忘记订阅。
感谢您的阅读。如果您有任何反馈,请告诉我。
相关推荐
- win7安全模式进去也黑屏(win7安全模式黑屏只有鼠标能动)
-
分辨率设置超出范围或者显卡驱动有问题导致的。解决方法:1、开机按F8选择安全模式进入安全模式。2、在安全模式桌面用鼠标右键点我的电脑,属性,打开设备管理器,展开设备管理器,用鼠标右键选择显卡驱动卸载...
- win7激活程序(win7激活程序怎么用)
-
windows7的激活方法如下1、首先打开计算机,在计算机内找到暴风激活工具选项并使用鼠标右键点击,然后在弹出的选项栏内找到“以管理员身份运行”选项并使用鼠标点击。2、激活工具自动识别到win7版本,...
- 台式电脑联网怎么连接(台式电脑以太网怎么连接)
-
电脑连接家庭网络连接方法如下1.首先我们要检查自己的网络连接。检查网络连接的方法很简单,我们只需要把鼠标放到屏幕的上方,用右键点击一下桌面,点击“个性化”即可。 2.进入页面后我们点击左上方的主页。...
- 鸿蒙os系统(鸿蒙OS系统更新)
-
鸿蒙os是分布式模块化的一个系统!所谓的模块化就是它可以根据终端的不同,开发成不同的模块!但最底层都是一样的,都是鸿蒙!所以你会在电视,智能手表,手机等等产品上看到鸿蒙!鸿蒙是华为基于万物互联而打造的...
- 360手机助手极速版(360手机助手官方下载安装)
-
可以的,手机助手里面有很多功能,有手机加速悬浮球一、打开设定-关于设备-系统更新-更新。通过在线固件升级(FOTA)服务下载并安装固件更新。注:使用FOTA软件升级所需条件:1、稳定的WI-FI或...
- 幻影wifi手机版官网(幻影wifi2020官网版)
-
第一步、下载最新版“幻影Wifi破解软件”。 第二步、下载之后安装至手机。 第三步、安装成功后,就可以打开软件,之后该幻影Wifi破解软件会自动扫描接收到信号的WIFI,并且会显示几格信号...
- 怎么把c盘扩大(pe系统怎么把c盘扩大)
-
C盘的内存通常是指C盘的存储空间,而存储空间不能从别的盘直接增加,必须通过调整分区大小或者更换大容量硬盘来实现。具体操作可以通过以下两种方式之一:1.磁盘管理工具:在计算机的“控制面板”中找到“管理工...
- chrome 安卓下载(chrome安卓下载apk)
-
安卓手机可以先下载一个应用宝,然后在应用宝上下载一个谷歌地球,随后再下载一个ourplay,将之前下载的谷歌地球导入进ourplay就好了,谷歌地球就能使用了,我自己的手机就是这么操作的
- 最流畅的浏览器(浏览器流畅度排名)
-
我觉得QQ浏览器9.0就不错,我也是喜欢在浏览器上看视频,朋友给我推荐的这款。这款浏览器是以“快”著称的,体现在很多方面,上网速度快,平常看视频、玩游戏都是很流畅的,因为这款浏览器在系统的稳定性和流畅...
- sm总线控制器驱动下载(sm总线控制器是什么驱动程序)
-
SM总线控制器是主板控制芯片上的一个通信控制器.它主要是希望通过一条廉价并且功能强大的总线(由两条线组成),来控制主板上的设备并收集相应的信息。MBus为系统和电源管理这样的任务提供了一条控制总线,使...
- 固态硬盘选择mbr还是gpt(固态硬盘选择mbr还是guid)
-
固态硬盘用mbr。用mbr,除速度快之外,系统支持度更高。此外,微软对于gpt的支持还不是很好,win7以前的系统基本不支持gpt。主引导记录(MBR),也被称为主引导扇区,是计算机开机后访问硬盘时所...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
