当前位置:首页 > 数码 > 处置特定义务的四个适用战略-Pandas高效代码 (处置特定义务有哪些)

处置特定义务的四个适用战略-Pandas高效代码 (处置特定义务有哪些)

admin4周前 (04-24)数码15

在本文中,我将分享4个在一行代码中成功的Pandas操作。这些操作可以有效地处置特定的义务,并以一种好的方式给出结果。

从列表中创立字典

我有一份商品清单,我想看看它们的散布状况。更详细地说:宿愿失掉惟一值以及它们在列表中产生的次数。

/target=_blankclass=infotextkey>Python字典是以这种格局存储数据的好方法。键将是字典,值是产生的次数。

这里可以经常使用value_counts和to_dict函数,这项义务可以在一行代码中成功。

这里有一个方便的例子来说明这种状况:

importpandasaspdgrades=["A","A","B","B","A","C","A","B","C","A"]pd.Series(grades).value_counts().to_dict()#output{'A':5,'B':3,'C':2}

将列表转换为PandasSeries,这是Pandas的一维数据结构,而后运行value_counts函数来取得在Series中产生频率的惟一值,最后将输入转换为字典。这个操作十分高效且易于了解。

从JSON文件创立DataFrame

JSON是一种罕用的存储和传递数据的文件格局。

当咱们清算、处置或剖析数据时,咱们通常更喜爱经常使用表格格局(或相似表格的数据)。因为json_normalize函数,咱们可以经过一个操作从json格局的对象创立Pandas> importjsonwithopen("data.json")asf:> df=pd.DataFrame(data)

但是假设咱们经常使用json_normalize函数将失掉一个整洁的DataFrame格局:

df=pd.json_normalize(data,"data")

Explode函数

假设有一个与特定记载婚配的项列表。须要从新格局化它,为该列表中的每个名目提供独自的行。

这是一个经典的行宰割成列的疑问。有许多的不同的方法来处置这个义务。其中最方便的一个(或者是最方便的)是Explode函数。

咱们以这个df为例

经常使用explosion函数并指定列名:

df_new=df.explode(column="data").reset_index(drop=True)

reset_index会为DataFrame调配一个新的整数索引。

combine_first函数

Pandas高效代码

combine_first函数用于兼并两个具备相反索引的数据结构。

它最关键的用途是用一个对象的非缺失值填充另一个对象的缺失值。这个函数通常在处置缺失数据时很有用。在这方面,它的作用与SQL中的COALESCE函数相反。

df=pd.DataFrame({"A":[None,0,12,5,None],"B":[3,4,1,None,11]})

咱们须要a列中的数据。假设有一行缺少值(即NaN),用B列中同一行的值填充它。

df["A"].combine_first(df["B"])#output03.010.0212.035.0411.0Name:A,dtype:float64

可以看到的列A的第一行和最后一行取自列B。

假设咱们想要经常使用3列,咱们可以链接combine_first函数。上方的代码行首先审核列a。假设有一个缺失的值,它从列B中失掉它。假设列B中对应的行也是NaN,那么它从列C中失掉值。

df["A"].combine_first(df["B"]).combine_first(df["C"])

咱们还可以在DataFrame级别经常使用combine_first函数。在这种状况下,一切缺失的值都从第二个DataFrame的相应值(即同一行,同列)中填充。

df1=pd.DataFrame({'A':[1,2,np.nan,4],'B':[5,np.nan,7,8]},index=['a','b','c','d'])df2=pd.DataFrame({'A':[10,np.nan,30,40],'B':[50,60,np.nan,80]},index=['a','b','c','d'])result_df=df1.combine_first(df2)

在兼并的环节中,df1中的非缺失值填充了df2中对应位置的缺失值。这有助于处置两个数据汇兼并时的缺失值状况。

Tags:点击:()评论:()让你的Pandas代码快得离谱的两个技巧假设你曾经经常使用过Pandas处置表格数据,你或者会相熟导入数据、荡涤和转换的环节,而后将其用作模型的输入。但是,当你须要裁减和将代码投入消费时,你的Pandas管道很或者开局解体并...【详细内容】2024-01-19Search: 点击:(78)评论:(0)添加收藏 Pandas的魅力:从数据处置到机器学习Part01、Series和DataFrame:Pandas的外围Pandas的两个关键数据结构是Series和DataFrame。Series是一维标志数组,相似于Python中的列表。而DataFrame是二维标志数据结构,相似...【详细内容】2023-12-18Search: 点击:(126)评论:(0)添加收藏 Python数据处置,Pandas经常使用方式的变局前段期间在公司技术分享会上,共事引见了目前市面上关于智能生成pandas代码的工具库。咱们也尝试把这些工具库引入到上班流程中。经过一段期间的通常,最终还是感觉不适宜,不再...【详细内容】2023-12-12Search: 点击:(156)评论:(0)添加收藏 一个闪电般极速的>妇孺皆知,SQL和Pandas是数据迷信畛域罕用工具,知晓这两大工具对数据迷信家来说极有价值。而最近,又有一个新的工具库——「Polars」也开局遭到青眼。Polars简介Polar...【详细内容】2023-12-11Search: 点击:(155)评论:(0)添加收藏

NumpyPandas高效函数学生必看

NumPy、Pandas 中的高效函数!

NumPy、Pandas中的高效函数

Numpy是Python环境下的扩展程序库, 支持大量的维度数组

和矩阵运算; Pandas也是Python环境下的数据操作和分析

软件包,以及强大的数据分析库。二者在日常的数据分析中都发

挥着重要作用, 如果没有Numpy和Pandas的支持, 数据分

析将变得异常困难。但有时我们需要加快数据分析的速度,有什

么办法可以帮助到我们吗?

给你介绍一下Numpy和Pandas函数, 这些高效的函数会令

数据分析更为容易、便捷。

Numpy的6种高效函数

Numpy是用于科学计算的Python语言扩展包, 通常包含强大

的N维数组对象、复杂函数、用于整合C/C++和Fortran代

码的工具以及有用的线性代数、傅里叶变换和随机数生成能力。

除了上面这些明显的用途, Numpy还可以用作通用数据的高效

多维容器(container) , 定义任何数据类型。这使得Numpy

能够实现自身与各种数据库的无缝、快速集成。

接下来一一解析6种Numpy函数。

NumPy、Pandas中的高效函数

arg partition()

借助于arg partition() , Numpy可以找出N个最大数值的索

引,也会将找到的这些索引输出。然后我们根据需要对数值进行

排序。

all close()

all close() 用于匹配两个数组, 并得到布尔值表示的输出。如果

在一个公差范围内(within a tolerance) 两个数组不等同,

则all close() 返回False。该函数对于检查两个数组是否相似

非常有用。

Clip() 使得一个数组中的数值保持在一个区间内。有时, 我们需

要保证数值在上下限范围内。为此, 我们可以借助Numpy的

clip() 函数实现该目的。给定一个区间, 则区间外的数值被剪切

至区间上下限(interval edge) 。

NumPy、Pandas中的高效函数

顾名思义, extract() 是在特定条件下从一个数组中提取特定元

素。借助于extract() , 我们还可以使用and和or等条件。

Where() 用于从一个数组中返回满足特定条件的元素。比如, 它

会返回满足特定条件的数值的索引位置。Where() 与SQL中使

用的where condition类似

percentile()

Percentile() 用于计算特定轴方向上数组元素的第n个百分位

数。

这就是Numpy扩展包的6种高效函数, 相信会为你带来帮助。

Pandas数据统计包的6种高效函数

Pandas也是一个Python包, 它提供了快速、灵活以及具有

显著表达能力的数据结构,旨在使处理结构化(表格化、多维、异

构)和时间序列数据变得既简单又直观。

Pandas适用于以下各类数据:

NumPy、Pandas中的高效函数

具有异构类型列的表格数据, 如SQL表或Excel表;

有序和无序(不一定是固定频率)的时间序列数据;

带有行/列标签的任意矩阵数据(同构类型或者是异构类型);

其他任意形式的统计数据集。事实上,数据根本不需要标记就可

以放入Pandas结构中。

Pandas擅长处理的类型如下所示:

Pandas也是一个Python包, 它提供了快速、灵活以及具有

显著表达能力的数据结构,旨在使处理结构化(表格化、多维、异

构)和时间序列数据变得既简单又直观。

Pandas适用于以下各类数据:

容易处理浮点数据和非浮点数据中的缺失数据(用NaN表示

大小可调整性:可以从Data Frame或者更高维度的对象中插入

或者是删除列;

显式数据可自动对齐:对象可以显式地对齐至一组标签内,或者用

户可以简单地选择忽略标签, 使Series、Data Frame等自动

对齐数据;

NumPy、Pandas中的高效函数

灵活的分组功能,对数据集执行拆分-应用-合并等操作,对数据进

行聚合和转换;

简化将数据转换为Data Frame对象的过程, 而这些数据基本是

Python和NumPy数据结构中不规则、不同索引的数据;

基于标签的智能切片、索引以及面向大型数据集的子设定;

更加直观地合并以及连接数据集;

更加灵活地重塑、转置(pivot) 数据集;

轴的分级标记(可能包含多个标记);

具有鲁棒性的IO工具, 用于从平面文件(CSV和delimited)

Excel文件、数据库中加在数据, 以及从HDF 5格式中保存

|加载数据;

时间序列的特定功能:数据范围的生成以及频率转换、移动窗口统

计、数据移动和滞后等。

read_csv(nrows=n)

大多数人都会犯的一个错误是, 在不需要文件的情况下仍会

完整地读取它。如果一个未知的文件有10GB, 那么读取整

个文件将会非常不明智, 不仅要占用大量内存, 还会花很多

时间。我们需要做的只是从文件中导入几行, 之后根据需要

继续导入。

NumPy、Pandas中的高效函数

map() 函数根据相应的输入来映射Series的值。用于将一个

Series中的每个值替换为另一个值, 该值可能来自一个函数、也

可能来自于一个dict或Series。

apply() 允许用户传递函数, 并将其应用于Pandas序列中的

每个值。

Is in() 用于过滤数据帧。Is in() 有助于选择特定列中具有特定

(或多个)值的行

Copy() 函数用于复制Pandas对象。当一个数据帧分配给另

一个数据帧时,如果对其中一个数据帧进行更改,另一个数据帧

的值也将发生更改。为了防止这类问题, 可以使用copy() 函数

select_d types()

select_d types() 的作用是, 基于d types的列返回数据帧列

的一个子集。这个函数的参数可设置为包含所有拥有特定数据类

型的列,亦或者设置为排除具有特定数据类型的列。

最后, pivot_table() 也是Pandas中一个非常有用的函数。

如果对pivot_table() 在excel中的使用有所了解, 那么就非

常容易上手了。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Pandas

“处置特定义务的四个适用战略-Pandas高效代码 (处置特定义务有哪些)” 的相关文章

从数据处理到机器学习-Pandas-的强大魅力 (从数据处理到人工智能)

从数据处理到机器学习-Pandas-的强大魅力 (从数据处理到人工智能)

简介 Pandas是一个强大的Python库,专门用于数据处理和分析。它提供了直观的数据结构,简化了复杂的数据处理任务。 核心数据结构 Pandas的两个核心数据结构是: Series...

Pandas-数据处理与分析的得力助手

Pandas-数据处理与分析的得力助手

1. 数据合并与连接 Pandas可以用于合并和连接多个数据集,常见的方法包括concat、merge和join等。 1.1 使用concat合并 impo...

释放数据价值的强大工具-b-b-Pandas时间重采样 (释放数据价值的有效途径是)

释放数据价值的强大工具-b-b-Pandas时间重采样 (释放数据价值的有效途径是)

简介 时间序列数据蕴含着巨大的价值,通过重采样技术可以提升原始数据的表现形式。无论你是数据科学家、分析师,还是对数据挖掘感兴趣,都可以从本文学习方法和工具,提升数据可视化技巧。 为什么...

Python-数据标准化详解-Pandas数据预处理 (python怎么读)

Python-数据标准化详解-Pandas数据预处理 (python怎么读)

1. 数据准备 ```python import pandas as pd df = pd.read_csv('datasets/dpc-covid19-ita-regioni.csv') d...