# -*- 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还有很多事情要做,我们将在这里介绍更多!