pandas入门(1)——Series数据结构
pandas是数据分析的首选库,基于NumPy数组构建。它含有使数据清洗和分析工作变得更快更简单的数据结构和操作工具。pandas经常和其它工具一同使用,如数值计算工具NumPy和SciPy,分析库statsmodels和scikit-learn,和数据可视化库matplotlib。
pandas是专门为处理表格和混杂数据设计的,而NumPy更适合处理统一的数值数组数据。
引入pandas, Series, DataFrame:
import pandas as pd
from pandas import Series, Dataframe
Series数据结构
Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成,如
obj=pd.Series([4,7,-5,3])
obj
备注:Series的字符串表现形式为:索引在左边,值在右边。由于我们没有为数据指定索引,于是会自动创建一个0到N-1(N为数据的长度)的整数型索引。
创建的Series带有一个可以对各个数据点进行标记的索引
obj.index = ['Bob', 'Steve', 'Jeff', 'Ryan']
obj
obj1=pd.Series([4,7,-5,3],['b','d','a','c'])
obj1
通过索引的方式选取Series中的单个或一组值:
obj1[['c', 'a', 'd']]
备注:[‘c’, ‘a’, ‘d’]是索引列表,即使它包含的是字符串而不是整数。使用NumPy函数或类似NumPy的运算(如根据布尔型数组进行过滤、标量乘法、应用数学函数等)都会保留索引值的链接,如
obj1[obj1 > 0]
'b' in obj1
'e' in obj1
通过字典创建Series
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
obj2 = pd.Series(sdata)
obj2
如果只传入一个字典,则结果Series中的索引就是原字典的键(有序排列)。你可以传入排好序的字典的键以改变顺序:
states = ['California', 'Ohio', 'Oregon', 'Texas']
obj3 = pd.Series(sdata, index=states)
obj3
缺失数据的表示
-
pandas的isnull和notnull函数可用于检测缺失数据,如
pd.isnull(obj3) pd.notnull(obj3)
-
Series用insull检测:
obj3.insull()
name属性
Series对象本身及其索引都有一个name属性,该属性跟pandas其他的关键功能关系非常密切,如
obj3.name='population'
obj3.index.name='State'
obj3