python高性能web框架,python高性能框架

  python高性能web框架,python高性能框架

  序

  我想我学到了很多关于如何使用R处理表格数据的知识。

  本文主要讨论如何在Python上处理表型数据。说到Python数据处理,就不得不提熊猫了。

  Pandas是Python数据处理的核心库,提供快速、灵活、清晰的数据结构,便于直接处理结构化和关系型数据。

  Panda适用于许多不同类型的数据:

  具有不同类型列的表数据,如Excel表或SQL表

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

  任何带有行和列标签的矩阵数据(相同或不同的数据)))))。

  其他格式的观察/统计数据集。实际上,数据可以放在pandas数据结构中,没有标记。

  熊猫的主要数据结构是序列(一维)和数据帧(二维)。这两种数据结构可以支持金融、统计、社会科学、工程等领域的许多数据。

  DataFrame比R语言中的data.frame提供了更丰富的功能。

  Pandas是基于NumPy开发的,可以与其他第三方科学计算库完全集成。

  如果能熟练使用熊猫,可以在数据处理方面做的更多。它的优点我就不介绍了,言归正传。

  固定

  如果您的系统上安装了Anaconda environment,将会自动安装与公共数据科学相关的库,如pandas、numpy和matplotlib。

  如果没有使用Anaconda,可以使用它。

  Pip安装熊猫

  我一般推荐使用Anaconda环境,但是它真的很有用。如果您仍然不知道如何配置Anaconda的安装,您可以找到我的上一篇文章。那里有详细的说明。

  数据结构

  本节首先介绍熊猫的基本数据结构。

  当然,要使用这个包,必须先导入。此外,有些函数用于numpy。标准导入方法是

  In [1]:将numpy作为np导入

  在[2]:导入熊猫作为PD

  1.塞利茨

  Series是一个带标签的一维数组,可以包含任何数据类型的数据,包括整数、浮点数、字符串和Python对象。这个标签叫做index,可以使用pd来创建。串联函数。

  S=PD.series (data,index=index))。

  其中数据可以

  Python词典

  多维数组

  标量值(例如,5))。

  索引是相应标签的列表。根据数据的类型,可以分为以下几类。

  多维数组

  如果数据是多维数组,则索引的长度必须与数据的长度匹配。如果未指定index参数,将自动创建增量值index [0,Len,-1]。

  在[3]中:s=PD.series (NP.random.randn ) 5,index=[a , b , c , d , e]).

  在[4]: s

  Out[4]:

  一个0.469112

  b -0.282863

  c -1.509059

  d -1.135632

  e 1.212112

  数据类型:浮点64

  在[5]: s索引

  Out [5]: index ([a , b , c , d , e],dtype=object )

  in[6]:PD . series(NP . random . randn(5)))))))).

  Out[6]:

  0 -0.173215

  1 0.119209

  2 -1.044236

  3 -0.861849

  4 -2.104569

  数据类型:浮点64

  注意:Pandas索引值是可重复的,如果使用不支持重复索引的操作,将会抛出异常。

  在[7]中:PD.series (NP.random.randn (5),index=[a , b , d , d , e )).

  Out[7]:

  a 0.624372

  b 0.173827

  d 0.078082

  d 0.765597

  e 0.631827

  数据类型:浮点64

  词典

  可以使用字典实例化系列。

  In [8]: d={b: 1, a: 0, c: 2}

  在[9]中:PD .系列(d))

  Out[9]:

  b 1

  一个0

  c 2

  dtype: int64

  注意:当数据为字典且未设置index参数时,如果Python的版本=3.6,Pandas的版本=0.23,Series将按照字典的插入顺序对索引进行排序。

  在其他版本中,Series将根据字典的关键字按字母顺序对列表进行排序。

  也就是说,如果我们的Python 3.6或者Pandas 0.23,上面的结果会是

  一个0

  b 1

  c 2

  dtype: int64

  如果设置了index参数,数据的数据将按照索引的顺序排序显示,不存在的值将被复制为NaN。

  In [10]: d={a: 0。 b: 1。 c: 2。}

  在[11]: pd。Series(d,index=[b , c , d , a])

  Out[11]:

  b 1.0

  c 2.0

  d男

  一个0.0

  数据类型:float64

  注:NaN(非数字)在熊猫中用于表示缺失值。

  标量值

  如果数据是标量值,则必须设置索引值。Series按索引的长度重复标量值。

  在[12]: pd。系列(5。index=[a , b , c , d , e])

  Out[12]:

  一个5.0

  b 5.0

  c 5.0

  d 5.0

  e 5.0

  数据类型:float64

  类numpy数列

  Series的行为类似ndarray,支持大多数NumPy函数和索引切片。

  在[13]: s[0]

  输出[13]:-1 . 53860 . 48888888861

  在[14]: s[:3]

  Out[14]:

  a -1.974463

  b 1.926031

  c 0.659861

  数据类型:float64

  In [15]: s[s s.median()]

  Out[15]:

  b 1.926031

  e 1.077661

  数据类型:float64

  在[16]: s[[4,3,1]]

  Out[16]:

  e 1.077661

  d -1.386355

  b 1.926031

  数据类型:float64

  In [17]: np.exp(s)

  Out[17]:

  一个0.138836

  b 6.862223

  c 1.934524

  d 0.249985

  e 2.937800

  数据类型:float64

  注意:我们可以用s[[4,3,1]]提取指定位置的值,也可以是重复值,会重复提取。

  s[[4,3,1,1]]

  e 1.077661

  d -1.386355

  b 1.926031

  b 1.926031

  数据类型:float64

  我们可以使用dtype属性来获取数据的类型。

  在[18]中:s.dtype

  Out[18]: dtype(float64 )

  使用astype()设置数据的类型。

  在[19]中:s.astype(str)

  Out[19]:

  a-1。56860 . 88888888861

  b 1 . 58661 . 38686868661

  c 0 . 56860 . 58686868661

  d -1级的。58660.88868888666

  e 1 . 58661 . 58686868661

  dtype:对象

  我们可以将序列转换成数组或numpy数组。

  在[20]: s数组中

  Out[20]:

  [-1.9744628992708957, 1.9260314025924432, 0.6598612596804069,

  -1.3863546449807986, 1.0776610911873974]

  长度:5,型号:float64

  In [21]: s.to_numpy()

  Out[21]:数组([-1.9744629,1.9260314,0.65986126,-1.38635464,1.07766109])

  系列也类似于字典。

  与系列字典类似,您可以使用“索引”选项卡提取值或设置相应的值。

  在[22]: s[b]

  [22]出来:1 . 54866 . 88888888861

  在[23]中:s[e]=12。

  在[24]: s

  Out[24]:

  a -1.974463

  b 1.926031

  c 0.600000

  d -1.386355

  e 12.000000

  数据类型:float64

  在[25]中:s中的e

  Out[25]:真

  在[26]中:s中的“f”

  Out[26]:假

  如果您想要访问的标签不存在,将会引发一个错误。

  在[27]: s[f]

  -

  NameError Traceback(最近一次调用)

  在

  - 1秒[法]

  名称错误:未定义名称“f”

  还可以使用get方法提取与系列中的标签相对应的值,并在标签不存在时返回None或指定另一个值。

  In [28]: s.get(f )

  In [29]: s.get(f ,np.nan)

  [29]:楠出来了

  系列支持矢量运算。

  Series支持大多数数组操作。

  在[30]:年代年代

  Out[30]:

  a -3.948926

  b 3.852063

  1.200000

  d-2772709

  e 24.000000

  数据类型:float64

  在[31]: s * 2

  Out[31]:

  a -3.948926

  b 3.852063

  1.200000

  d-2772709

  e 24.000000

  数据类型:float64

  系列之间的运算会自动对齐标签数据,因此不必考虑执行计算运算的系列是否具有相同的标签。

  In [32]: s[1:] s[:-1]

  Out[32]:

  阿南

  b 3.852063

  1.200000

  d-2772709

  e男

  数据类型:float64

  无法映射的标签的运算结果将被标记为NaN,计算结果将是所有涉及标签的并集。

  这样我们就不需要编写代码来显式对齐数据,为数据分析和研究提供了极大的自由度和灵活性。

  注意:默认情况下,不同索引对象的结果允许生成索引并集,以避免信息丢失。当然,我们也可以使用drop方法删除包含缺失值的标签。

  名称属性

  支持Seriesname属性:

  在[33]中:s=pd。系列(np.random.randn(5),name=something )

  在[34]: s

  Out[34]:

  0 1.926419

  1 1.175251

  2 -0.568534

  3 -0.014069

  4 1.401082

  名称:某物,数据类型:float64

  在[35]: s.name

  Out[35]:“某物”

  通常,Series会自动分配name属性,尤其是从DataFrame中提取一维数据切片时。

  可以使用rename方法重命名系列。

  在[36]中:s2=s.rename(“不同”)

  在[37]: s2.name

  Out[37]:“不同”

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: