1、重新索引
1.png
调用该Series的reindex将会根据新索引进行重排。如果某个索引值当前不存在,就引入缺失值:
2.png
对于时间序列这样的有序数据,重新索引时需要做一些插值处理。下面的例子调用了method中的ffill实现前向充值:
3.png
下面列出reindex的(插值)method选项:
4.png
对于DataFrame,reindex可以修改(行)索引、列,或两个都修改。如果仅传入一个序列,则会重新索引行,插值只能按行应用(即轴0):
5.png
使用columns关键字即可重新索引列:
6.png
同时对行和列进行重新索引:
7.png
利用ix的标签索引功能:
8.png
下面列出了reindex函数的各参数及说明:
9.png
2、丢弃指定轴上的项
10.png
对于DataFrame,可以删除任意轴上的索引值:
11.png
附源码:
# coding: utf-8
# In[1]:
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
# In[2]:
obj = Series([4.5,2.3,-7,6],index= [3,4,1,2])
print (obj)
# In[3]:
# 调用Srries的reindex进行重排
obj2 = obj.reindex([1,2,3,4,5])
print(obj2)
# In[4]:
obj2 = obj.reindex([1,2,3,4,5,6],fill_value=0) # fill_value是把NaN值进行赋值
print(obj2)
# In[5]:
obj3 = Series(['blue','purple','yellow'],index=[0,2,4])
print( obj3)
# In[6]:
re_obj3 = obj3.reindex(range(6),method='ffill') # ffill向前充值
print(re_obj3)
# In[7]:
frame = DataFrame(np.arange(9).reshape((3,3)),index=['a','c','d'],
columns=['Guangdong','Shandong','Henan'])
print (frame)
# In[8]:
frame2 = frame.reindex(['a','b','c','d'],method='ffill')
print (frame2)
# In[9]:
# 使用columns关键字索引列
province = ['Sichuan','Henan','Anhui']
frame2 = frame.reindex(columns=province)
print (frame2)
# In[10]:
# 同时对行和列索引
frame2 = frame.reindex(index=['a','b','c','d'],columns=province)
print (frame2)
# In[11]:
# 利用ix标签索引功能
frame3 = frame.ix[['a','b','c','d'],province]
print(frame3)
# In[12]:
obj = Series(np.arange(5),index=['a','b','c','d','e'])
print(obj)
# In[13]:
# 丢弃指定轴上的项
new_obj = obj.drop('c')
print(new_obj)
# In[14]:
# 使用DataFrame删除任意轴上的索引值
data = DataFrame(np.arange(16).reshape((4,4)),
index=['Guangdong','Shandong','Sichuan','Henan'],
columns=['one','two','three','four'])
print(data)
# In[15]:
data2 = data.drop(['Sichuan','Shandong'])
print(data2)
# In[16]:
data2 = data.drop('two',axis=1)
print(data2)
# In[17]:
data2 = data.drop(['two','four'],axis=1)
print(data2)











网友评论