一、pandas概述
pandas :pannel data analysis(面板数据分析)。pandas是基于numpy构建的,为时间序列分析提供了很好的支持。pandas中有两个主要的数据结构,一个是Series,另一个是DataFrame。
二、数据结构 Series
Series 类似于一维数组与字典(map)数据结构的结合。它由一组数据和一组与数据相对应的数据标签(索引index)组成。这组数据和索引标签的基础都是一个一维ndarray数组。可将index索引理解为行索引。 Series的表现形式为:索引在左,数据在右。
-
Series 就如同列表一样,一系列数据,每个数据对应一个索引值。
from pandas import Series
x=Series([1,2,3])
print(x)
print(x.values) # [1 2 3]
print(x.index) # RangeIndex(start=0, stop=3, step=1)
0 1
1 2
2 3
# 索引
# 指定Series的index
x=Series([1,2,3],index=['a','b','c'])
print(x) # 指定Series的index
a 1
b 2
c 3
#通过索引来获取元素值
print(x['a'])
1
#通过行索引来赋值
x['b']=2222
print(x)
a 1
b 2222
c 3
#类似于numpy的花式索引
print(x[['c','b']])
c 3
b 2222
# 类似于numpy的布尔索引
print(x[x>2])
b 2222
c 3
#类似于字典的使用:是否存在该索引:True
print('b' in x)
True
#追加一个序列
n = Series(['xinzeng'])
#需要使用一个变量来承载变化
x = x.append(n)
print(x)
a 1
b 2222
c 3
0 xinzeng
使用字典来生成Series
data = {'a':1, 'b':2, 'd':3, 'c':4}
x=Series(data)
print(x)
a 1
b 2
d 3
c 4
#使用字典生成Series,并指定额外的index,不匹配的索引部分数据为NaN
exindex = ['a', 'b', 'c', 'e']
y=Series(data,index=exindex)
print(y)
a 1.0
b 2.0
c 4.0
e NaN
dtype: float64
#Series相加,相同行索引相加,不同行索引则数值为NaN
print(x+y)
a 2.0
b 4.0
c 8.0
d NaN
e NaN
#指定Series/索引的名字
y.name = 'weight of letters'
y.index.name = 'letter'
print(y)
a 1.0
b 2.0
c 4.0
e NaN
Name: weight of letters
#替换index
y.index = ['a', 'b', 'c', 'f']
print(y)
a 1.0
b 2.0
c 4.0
f NaN
Name: weight of letters