更有效地使用 Python Pandas 的 4 个技巧
这是一个非常简单的, 同时也是十分有效的一个小指南。这张照片呢, 是由一位叫做simon sun的家伙, 在上拍摄得。它是一个用于数据分析以及操作方面的相当实用和具备强大力量的库。从二零一九年开始, 我就一直在使用它。这个工具一直能够给我的工作提供解决问题的办法。等到使用的时间差不多达到了三年左右的长短, 我终于看清楚了一个事实, 那是关于我最初对它的利用方式的问题, 我的认识是: 在初始的阶段之内, 我并没有把使用的效率发挥到极致。遇到需要处理具体难题的情形时, 我所挑选的应对途径, 比起那些被认为是最优的路径, 消耗的步骤和时长要多一些, 显得冗长。另外, 对于某些具备特定用途的功能模块, 我这边的操作动作不够利落, 呈现出的结果也缺少应有的精准度, 没能达到非常高效的程度。我能够完成任务, 不过, 当我发现有更优的实用做事方式后, 整个工作流程就得到改进。在本文之中, 我将进行分享, 内容是四个技巧, 这些技巧能够帮助到大家充分地利用好, 现在让我们从创建一个用来作为示例的对象开始做起, 以便可以在后续的示例中进行使用操作。将 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 行, 然后在 team 这一列和 score 这一列里面, 存在一些缺失值。1. 带空值的 函数函数是最常用的函数其中之一。它用于计算每一个不同值在列里面的出现情况。默认的情形之下, 它会忽略空值这回事儿。也就是说它对缺失值不加考虑。这种做法有时候会给人产生误解的尤其是当咱们处理特别大的文件之时。df[团队].value_counts()# 输出B 3A 2C 1名称团队数据类型int64在 team 这一列数据里面, 存在是空白的地方, 可是我们在用那个函数去算结果的时候, 发现这些空的都看不见了, 没法直接看到它们。为了解决这个问题, 我们可以把下面那个参数给加进去, 加了之后呢, 系统就会开始把这些空值的情况也一起算进去了。df[团队].value_counts(dropnaFalse)# 输出B 3A 2NaN 2C 1名称团队dtypeint64如今, 输出的内容变得更为精准了。2. 去利用那些其他列的数据, 来把那些缺少了的东西给填满。在现实生活的数据集之中, 往往会存在一些数据空缺情况, 这些空缺是不能够被总是予以忽略的。我们必须要对它们进行妥当的处理, 以便能够产生出准确且可靠的输出结果。我们要去对缺失数值进行填充, 这其中有多种选项可以作为参考。到底哪个方案是最优的, 这其实是由数据的特性和我们所承担的任务的具体特性来决定的。我们不妨以简单的例子来说明一下, 在一种情境下, 我们是可以去使用列的平均值这个手段, 来完成对缺失数值的填充工作的。但是当我们面临的是另一种情况, 就是处理的时间序列数据的时候, 这时候我们会发现, 选取上一个时间节点的数值或者是下一个时间节点的数值很可能才是那个更为恰当、更好的选择。存在另外一种选取方案, 那就是调用其余列里头的信息来补漏。在我们的那个数据集里面, 可以动用某特定列里的元素去替补 team 这一栏里头出现的空值情形。本人接下来打算给你演示两类互异的执行路径。头一棒出场的招式便是依托 loc 这个手段来亲自挑选那些残缺的位置点。df.loc[df[Team].isna()True, Team] df[Player]在左侧的选择团队列里面找到那些缺失值。然后在右侧把玩家列里面的这些值给分配过去。第二种方式是直接去使用已经写好的函数。df[Team].fillna(df[Player], inplaceTrue)dfdf作者图片3. 使用 字典字典属于内置的数据结构之一, 它在进行数据分析及相关操作时能够派上用场, 同时我们还可以配合特定的函数来使用它们, 从而使得这些数据结构发挥更大的作用。比如说, 有个函数专门负责在列里面去替换掉那些指定的值。咱们假设有这么一种情况, 就是手头上拿着一堆每个球员所在的队伍数据, 这些数据被装进了一个叫作球队字典的东西里面。团队 {“约翰”“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)这根本没法跟用字典比, 毕竟用起来那么顺手。咱们手头指不定要换好几个值, 要是挨个去写代码, 没准得搓好几行才算完事, 可要是换了字典来弄的话, 顶多就敲一行指令, 这点活儿也就给抹平了, 简直省事到了极点。您能够使用字典, 用来增强其他的某些函数。这是一篇由我本人所撰写的、关于这个具体主题的、更为详尽的文章。4. 缺失值的整数列分数列里的数值本身是整数类型, 但是在界面上却显示成了浮点数格式, 造成这一状况的根本原因, 是该列之中存在缺失数据的项。因为整数的默认数据类型它本身是不支持空值的, 所以在这种情况下数据类型会自动被向上转换为浮点数。如果你认为把这些值表示为整数是非常重要的事情, 那么你就应该去使用那种可以为空的整数数据类型。df[Score] df[Score].astype(pd.Int64Dtype())dfdf作者图片目前这个得分的情况被表现成了整数的形式。数据清理和数据操作是任何以数据为核心要素的产品体系中都不可或缺的重要内容环节。系统方面提供了数量众多的多样功能以及方法策略, 目的是加速并简化您在工作流程中所面临的各种挑战。为了能够充分地利用起这些资源, 您应当主动尝试去全面发掘并发挥每一处功能所具备的全部潜力作用。您可以办理成为会员, 这样就可以解锁对我的作品以及其他内容的完整访问权限。如果您是会员, 并且想要在我不定期发布新文章的时候收到电子邮件提醒, 那您就不要忘记进行订阅操作。非常感谢您花时间阅读这里所呈现的文字, 要是您觉得有任何想法, 或者想要留下什么评论意见, 还请您务必告知我们。