115、pandas基本功能

1、重新索引

pandas对象的一个重要方法是reindex,其作用是创建一个适应新索引的型对象。例如:
115、pandas基本功能_第1张图片
1.png

调用该Series的reindex将会根据新索引进行重排。如果某个索引值当前不存在,就引入缺失值:
115、pandas基本功能_第2张图片
2.png

对于时间序列这样的有序数据,重新索引时需要做一些插值处理。下面的例子调用了method中的ffill实现前向充值:
115、pandas基本功能_第3张图片
3.png

下面列出reindex的(插值)method选项:
115、pandas基本功能_第4张图片
4.png

对于DataFrame,reindex可以修改(行)索引、列,或两个都修改。如果仅传入一个序列,则会重新索引行,插值只能按行应用(即轴0):
115、pandas基本功能_第5张图片
5.png

使用columns关键字即可重新索引列:
115、pandas基本功能_第6张图片
6.png

同时对行和列进行重新索引:
115、pandas基本功能_第7张图片
7.png

利用ix的标签索引功能:
115、pandas基本功能_第8张图片
8.png

下面列出了reindex函数的各参数及说明:
115、pandas基本功能_第9张图片
9.png

2、丢弃指定轴上的项

丢弃某条轴上的一个或多个项,可以使用drop方法,返回的是一个在指定轴上删除了指定值的新对象:
115、pandas基本功能_第10张图片
10.png

对于DataFrame,可以删除任意轴上的索引值:
115、pandas基本功能_第11张图片
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)

你可能感兴趣的:(115、pandas基本功能)