Pandas是Python的一个非常常见的第三方库文件,是一个Powerful python data analysis,由Wes Mckinney & PyData Development Team开发的的免费库文件,是python做数据分析、机器学习的神兵利器。下面参考Pandas的帮助文档,介绍Pandas的基本数据类型,供自己自学和大家参考。
Series
Series的创建
Series是一维的带标签的数列,并且其中的元素可是同时是任何类型,如整数、字符串和浮点数等Python支持的数据类型。与python中的List比较相似,但与之不同的是,Series的每个元素还有一个唯一的标签(Label)。Series的基本创建方法如下所示,先要导入Pandas库文件,再调用构造函数进行创建。
import pandas as pd
s = pd.Series(data, index)
其中data可以是标量、Python的dict或numpy中的多维数组(ndarray),index是每个元素对应的标签列表。
由标量创建
s1 = pd.Series(1.0)
其index默认为零,Python的下标均是由零开始编号的。
s2 = pd.Series(1.0, index = ['a', 'b', 'c'])
对于指定了index列表的Series,标量将相应地重复若干次。
由字典创建
d1 = {
'a': 1.0, 'b': 2.0, 'c': 3.0}
s3 = pd.Series(d1)
由dict创建的Series,其index为dict的key。
若在由dict创建Series时,指定了index列表的情况,其结果需要注意。
d2 = {
'a': 1.0, 'b': 2.0, 'c': 3.0, 'd': 4.0}
s4 = pd.Series(d2, index = ['e', 'f', 'g', 'h'])
如上两条代码,由d2创建Series,同时给定了index列表。s4的结果为index为指定的列表,但值均为空。原因是该代码的意思是从d2中取index为[‘e’, ‘f’, ‘g’, ‘h’]的数,然后组成Series。
由多维数组创建
多维数值(ndarray)是numpy中最为基本的数据类型,相当与数学上的张量(Tensor)。
a1 = np.random.randn(5)
s5 = pd.Series(a1)
不给定index列表,则默认index为[0, 1, …, len(a1) - 1].
s6 = pd.Series(a1, index = ['a', 'b', 'c', 'd', 'e'])
同样可以给定其index列表,结果与由dict创建的方式是不同的。
Series的特征
Python语言有个很大的特征就是Object-like,个人理解有重载的意味。虽然某些对象不属于某些类,但这些对象仍然具有该类的一些特征,可以调用该类的一些方法。
类ndarray的特征
Series对象可以正确调用numpy的方法,如切片、数学计算函数等,具有与ndarray相似的特征。
a2 = np.array([1, 2, 3, 4, 5])
s7 = pd.Series(a2, index = ['a', 'b', 'c', 'd', 'e'])
In [20]: s7[0]
Out[20]: 1
In [21]: s7[:3]
Out[21]:
a 1
b 2
c 3
dtype: int32
In [22]: s7[['c', 'a', 'b']]
Out[22]:
c