为了入门pandas,需要熟悉两个常用的工具数据结构:Series
和DataFrame
。
今天主要讲解Series。
Series
是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组。轴标签统称为索引
(index)。
最简单的Series可以仅仅由一个数组形成: obj = pd.Series([4,7,-5,3]) print(obj)
结果如下:
索引在左边,值在右边。
由于我们不为数据指定索引,所以默认生成的索引是从0到N-1。 可以通过values属性和index属性分别获得Series对象的值和索引。
print(obj.values)
print(obj.index)
对应结果如下:
通常需要创建一个索引序列,用标签标识每个数据点:
obj2 = pd.Series([4, 7, -5, 3],index=['d','b','a','c'])
print(obj2)
print(obj2.index)
可以在数据中选择数据时使用标签来进行索引:
print(obj2['a'])
print(obj2['d','c','a'])
也可以使用布尔值数组进行过滤,例如:
print(obj2[obj2 > 0])
print(np.exp(obj2))
如果已经有数据包含在Python字典中,可以使用字典生成一个Series:
sdata = {'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000}
obj3 = pd.Series(sdata)
print(obj3)
states = ['California','Ohio','Oregon','Texas']
obj4 = pd.Series(sdata,index=states)
print(obj4)
结果如下:
由于‘California’没有出现在sdata键中,它对应的值是NaN(Not a Number),这是pandas中标记缺失值或NA值的方式。
pandas用isnull和notnull函数来检查缺失数据。
pd.isnull(obj4)
pd.notnull(obj4)
# 也可以这样表示
obj4.isnull()
obj4.notnull()
Series对象自身和其索引都有name属性:
obj4.name='population'
obj4.index.name='state'
可以通过按位置赋值的方式改变索引:
obj.index=['Bob','Steve','Jeff','Ryan']
print(obj)
结果如下: