pandas 数据结构之Series的使用方法
1.Series
Series是一个类数组的数据结构,同时带有标签(lable)或者说索引(index)。
1.1下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会使用默认索引(从0到N-1)。
#引入Series和DataFrame In[16]:frompandasimportSeries,DataFrame In[17]:importpandasaspd In[18]:ser1=Series([1,2,3,4]) In[19]:ser1 Out[19]: 01 12 23 34 dtype:int64
1.2当要生成一个指定索引的Series时候,可以这样:
#给index指定一个list In[23]:ser2=Series(range(4),index=["a","b","c","d"]) In[24]:ser2 Out[24]: a0 b1 c2 d3 dtype:int64
1.3也可以通过字典来创建Series对象
In[45]:sdata={'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000} In[46]:ser3=Series(sdata) #可以发现,用字典创建的Series是按index有序的 In[47]:ser3 Out[47]: Ohio35000 Oregon16000 Texas71000 Utah5000 dtype:int64
在用字典生成Series的时候,也可以指定索引,当索引中值对应的字典中的值不存在的时候,则此索引的值标记为Missing,NA,并且可以通过函数(pandas.isnull,pandas.notnull)来确定哪些索引对应的值是没有的。
In[48]:states=['California','Ohio','Oregon','Texas'] In[49]:ser3=Series(sdata,index=states) In[50]:ser3 Out[50]: CaliforniaNaN Ohio35000.0 Oregon16000.0 Texas71000.0 dtype:float64 #判断哪些值为空 In[51]:pd.isnull(ser3) Out[51]: CaliforniaTrue OhioFalse OregonFalse TexasFalse dtype:bool In[52]:pd.notnull(ser3) Out[52]: CaliforniaFalse OhioTrue OregonTrue TexasTrue dtype:bool
1.4访问Series中的元素和索引:
#访问索引为"a"的元素 In[25]:ser2["a"] Out[25]:0 #访问索引为"a","c"的元素 In[26]:ser2[["a","c"]] Out[26]: a0 c2 dtype:int64 #获取所有的值 In[27]:ser2.values Out[27]:array([0,1,2,3]) #获取所有的索引 In[28]:ser2.index Out[28]:Index([u'a',u'b',u'c',u'd'],dtype='object')
1.5简单运算
在pandas的Series中,会保留NumPy的数组操作(用布尔数组过滤数据,标量乘法,以及使用数学函数),并同时保持引用的使用
In[34]:ser2[ser2>2] Out[34]: a64 d3 dtype:int64 In[35]:ser2*2 Out[35]: a128 b2 c4 d6 dtype:int64 In[36]:np.exp(ser2) Out[36]: a6.235149e+27 b2.718282e+00 c7.389056e+00 d2.008554e+01 dtype:float64
1.6Series的自动对齐
Series的一个重要功能就是自动对齐(不明觉厉),看看例子就明白了。差不多就是不同Series对象运算的时候根据其索引进行匹配计算。
#ser3的内容 In[60]:ser3 Out[60]: Ohio35000 Oregon16000 Texas71000 Utah5000 dtype:int64 #ser4的内容 In[61]:ser4 Out[61]: CaliforniaNaN Ohio35000.0 Oregon16000.0 Texas71000.0 dtype:float64 #相同索引值的元素相加 In[62]:ser3+ser4 Out[62]: CaliforniaNaN Ohio70000.0 Oregon32000.0 Texas142000.0 UtahNaN dtype:float64
1.7命名
Series对象本身,以及索引都有一个name属性
In[64]:ser4.index.name="state" In[65]:ser4.name="population" In[66]:ser4 Out[66]: state CaliforniaNaN Ohio35000.0 Oregon16000.0 Texas71000.0 Name:population,dtype:float64
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。