pandas基本功能
1、重新索引
pandas對象的一個重要方法是reindex,其作用是創建一個適應新索引的型對象。例如:
調用該Series的reindex將會根據新索引進行重排。如果某個索引值當前不存在,就引入缺失值:
對於時間序列這樣的有序數據,重新索引時需要做一些插值處理。下面的例子調用了method中的ffill實現前向充值:
下面列出reindex的(插值)method選項:
對於DataFrame,reindex可以修改(行)索引、列,或兩個都修改。如果僅傳入一個序列,則會重新索引行,插值只能按行應用(即軸0):
使用columns關鍵字即可重新索引列:
同時對行和列進行重新索引:
利用ix的標籤索引功能:
下面列出了reindex函數的各參數及說明:
2、丟棄指定軸上的項
丟棄某條軸上的一個或多個項,可以使用drop方法,返回的是一個在指定軸上刪除了指定值的新對象:
對於DataFrame,可以刪除任意軸上的索引值:
源碼:
# coding: utf-8nn# In[1]:nnimport numpy as npnimport pandas as pdnfrom pandas import Series,DataFramennn# In[2]:nnobj = Series([4.5,2.3,-7,6],index= [3,4,1,2])nprint (obj)nnn# In[3]:nn# 調用Srries的reindex進行重排nobj2 = obj.reindex([1,2,3,4,5])nprint(obj2)nnn# In[4]:nnobj2 = obj.reindex([1,2,3,4,5,6],fill_value=0) # fill_value是把NaN值進行賦值nprint(obj2)nnn# In[5]:nnobj3 = Series([blue,purple,yellow],index=[0,2,4])nprint( obj3)nnn# In[6]:nnre_obj3 = obj3.reindex(range(6),method=ffill) # ffill向前充值nprint(re_obj3)nnn# In[7]:nnframe = DataFrame(np.arange(9).reshape((3,3)),index=[a,c,d],n columns=[Guangdong,Shandong,Henan])nprint (frame)nnn# In[8]:nnframe2 = frame.reindex([a,b,c,d],method=ffill)nprint (frame2)nnn# In[9]:nn# 使用columns關鍵字索引列nprovince = [Sichuan,Henan,Anhui]nframe2 = frame.reindex(columns=province)nprint (frame2)nnn# In[10]:nn# 同時對行和列索引nframe2 = frame.reindex(index=[a,b,c,d],columns=province)nprint (frame2)nnn# In[11]:nn# 利用ix標籤索引功能nframe3 = frame.ix[[a,b,c,d],province]nprint(frame3)nnn# In[12]:nnobj = Series(np.arange(5),index=[a,b,c,d,e])nprint(obj)nnn# In[13]:nn# 丟棄指定軸上的項nnew_obj = obj.drop(c)nprint(new_obj)nnn# In[14]:nn# 使用DataFrame刪除任意軸上的索引值ndata = DataFrame(np.arange(16).reshape((4,4)),n index=[Guangdong,Shandong,Sichuan,Henan],n columns=[one,two,three,four])nprint(data)nnn# In[15]:nndata2 = data.drop([Sichuan,Shandong])nprint(data2)nnn# In[16]:nndata2 = data.drop(two,axis=1)nprint(data2)nnn# In[17]:nndata2 = data.drop([two,four],axis=1)nprint(data2)n
推薦閱讀: