Pandas基本介绍——DataFrame入门学习
前篇文章中,小生初步介绍pandas库中的Series结构的创建与运算,今天小生继续“死磕自己”为大家介绍pandas库的另一种最为常见的数据结构DataFrame。
DataFrame是二维标记的数据结构(三维结构请看Panel,后面为大家介绍),你可以把它看成一张电子表格或者SQL关系库中的表格。DataFrame是pandas库中最为常见的一种数据结构,正如Series一样,它也有很多不同的创建方法:
- Dict of 1D ndarrays, lists, dicts, or Series
- 2-D numpy.ndarray
- Structured or record ndarray
- A Series
- Another DataFrame
1、 from dict of Series or dicts
DataFrame中的index与Series结构中的index是独立的。如果输入数据是一个嵌套的dict结构,系统首先会将内部的dict转化为Series。如果初始化时没有给列名赋值,列名将会默认问dict keys.
行标和列标都可以通过index和columns属性获得。
注:当一个column集合与dict数据同时初始化,此时column集合将取代dict数据中的key值成为DataFrame的列名。
2、 from dict of ndarrays/lists
ndarrays长度必须都是一样的,如果index手动初始化,index的长度同样需要与ndarrays一样长。如果index没有手动给出,range(n-1)将默认初始化为index。
3、 from structured or record array
这种情况与dict of arrays一样。
4、 from a list of dicts
5、 from a dict of tuples
可以通过tuples dictionary创建一个multi-index frame。
6、 from a Series
DataFrame的index与Series的index一致,如果没有其他column名称给出,DataFrame的column值与Series的一致。
DataFrame数据对齐运算
1、两个不同的DataFrame进行运算时,DataFrame会根据行标和列标将对应位置的值一一对应运算。
2、DataFrame和Series进行运算时,将会根据Series的index对DataFrame的所有columns进行逐行计算。
3、针对带有时间序列的数据,DataFrame index也可以是时间序列,the broadcasting will be column-wise。
暂先总结这些,DataFrame的运算和初始化方法还有很多,这里就不加赘述,大家可以参考链接:http://pandas.pydata.org/pandas-docs/version/0.18.1/dsintro.html