当前位置: 首页 > 滚动 > >正文

Pandas数据结构简介(一)

来源:哔哩哔哩    时间:2023-08-29 07:05:00

# -*- coding: utf-8 -*-

"""# 数据结构简介

首先,这里介绍的很多材料都来自[Pandas数据结构入门教程]. 话虽如此,我希望通过告诉你我作为数据科学家日常使用的习语来增加一些Pandas学习的重要内容。所以让我们开始吧。


(资料图片)

# Series

Pandas 有两种数据结构,一个`Series`和一个`Dataframe`。`Series`就像excel中的一列,基本上是所有相同类型的数据点列表。创建`Series`对象的基本方法如下:

还有其他方法可以制作Series(例如从字典中),但总的来说,这是我唯一使用过的方法。所以请注意,一个系列基本上有三个重要部分:

1. 数据

2. 索引

3. 名称

数据可以是数据列表,也可以是广播的单个实例,如下所示:

(我们稍后将看到的广播非常重要)。

数据基本上是你作为数据科学家感兴趣的。`index`通常用时间序列,但除此之外,我真的不用`Series index`(现在我确实经常使用DataFrame的索引!但请注意,每个数据点都与一个index相关联。

最后是`name`。仅当将`Series`添加到`Datafram`时,name才真正重要。在这种情况下,`Series`的name将成为`coliunms`。

到目前为止,您还没有看到为什么`Series`如此有用,但现在我们开始进入它。`Series`有多种方法可以索引到它们

一般来说,我不做上述任何操作 - 如果你发现自己使用它们,一定要考虑一下你是否应该使用Pandas进行这些操作,或者你是否应该使用Numpy。

现在让我向您展示一些我经常使用的操作

# 或者 更加常用的操作

# 你也可以改变这些数据

# 但是你需要小心处理这些操作

但是关于序列的一件事非常有用,那就是您可以对它们进行矢量化操作(对整个序列中的所有内容进行快速计算)。你已经看到了一个。

# 只是需要小心这些操作

# 如果index 不匹配,你将得到NAN

这些类型的操作是跨列的,就是Pandas的目的。每当你偏离对列的操作时,你应该对自己说:Pandas是最适合我的工具吗?

现在对一列执行操作似乎很有用,但是对多列执行操作呢?

# DataFrame

`Series`很好,但它们的真正好处是数据帧。`DataFrame`就像一个完整的Excel电子表格!正如您可能猜到的那样,`Datafram`是一系列`Series`,每个`Series`都有一个name和相同的index。因此,创建`DataFrame`的一种简单方法是使用`Series/list`的字典方式创建它:

# 实际上,我经常使用和标量的方式创建

有很多方法可以创建这些东西之一,但一般来说,只要知道一个就足够了。以后始终可以更改索引或列的值

DataFrame` 基本上只是`Columns/Series`的字典,因此您可以使用大多数与`DataFrame`本身的`Series`相同的技术。

引用列的一般方法如下:

"""

# 输出一个有name的Series

然后,您可以使用我们上面所做的`Series`做任何事情。

有一个点符号快捷方式``,但最好不要知道它,因为如果使用不当,它可能会导致错误!

当然,您也可以删除和创建新列,也可以进行广播

同样,还有其他插入列的方法(插入和分配方法),但我从不使用它们。使用其他方法的好处似乎也很小。

接下来,让我们介绍一下使用Dataframe进行索引和选择。基本上有4种方法可以做到这一点:

## DataFrame 功能

除了执行这些按列操作之外,还可以执行一些`DataFrame`操作。

其中最有用的是复制方法:)

下一个我经常使用的是DataFrame转置功能"""

这会将行作为列,将列作为行。这可能是执行逐行操作的好方法,但主要是我这样做是为了显示`DataFrame`值。以下是显示`Dataframe`值的三种常用方法"""

"""但是,您会注意到,当列数过多时,显示会很混乱:"""

#transposing 来帮忙

有时这也会截断。要查看更多内容,您可以随时更改下面的视图选项(顺便说一句,Pandas中有很多选项,您可以在此处或使用 ):`_option?`"""

## 总结

恭喜,这是基础知识,现在您应该能够在这里进行[练习]

关于Pandas还有很多事情要做,我们将在这里介绍更多!

X 关闭

推荐内容

最近更新

Copyright ©  2015-2022 大众洁具网  版权所有    
备案号:豫ICP备20014643号-14     
 联系邮箱: 905 14 41 07@qq.com