pandas(五)索引对象

这篇博文主要介绍索引对象。

Index对象

一级索引对象

从Series对象中获得Index对象:

data = {
    "apples":2,
    "bananas":4,
    "oranges":9
}
s = pd.Series(data)
s
s.index

Out:
在这里插入图片描述
从DataFrame对象中获得Index对象:

data = {
    "apples":[2,3,4,5],
    "bananas":[1,5,2,3],
    "oranges":[9,4,6,3]
}
df = pd.DataFrame(data,index=["Lily","Tom","David","Robert"])
df
df.index
df.columns

Out:
在这里插入图片描述

创建索引对象

在Series中使用索引对象:

labels = pd.Index(["a","b","c","d"])
s = pd.Series(np.arange(4), index=labels)
s

Out:
在这里插入图片描述
在DataFrame中使用索引对象:

data = [[2,3,4],
        [1,5,2],
        [9,4,6],
        [12,4,15]]
row_labels = pd.Index(['Lily', 'Tom', 'David', 'Robert'])
column_labels = pd.Index(['apples', 'bananas', 'oranges'])
df = pd.DataFrame(data, index=row_labels, columns = column_labels)
df

Out:
在这里插入图片描述

重建索引

重建索引使用reindex()方法。
在Series对象中重建索引:

se1=pd.Series([1,7,3,9],index=['d','c','a','f'])
se1
se2=se1.reindex(['a','b','c','d','e','f'])
se2

Out:
在这里插入图片描述
在这里插入图片描述
在使用method参数的时候 index must be monotonic increasing or decreasing。

se3=pd.Series(["a", "b", "c"],index=[1,3,5])
se3
se4=se3.reindex(range(6),method='bfill')
se4

Out:
在这里插入图片描述
在这里插入图片描述
在DataFrame对象中重建索引:

df2 = df.reindex(['Tom', 'David', 'Robert'])
df2

Out:
在这里插入图片描述

df3 = df.reindex(columns=["oranges","bananas","apples"])
df3

Out:
在这里插入图片描述

MultiIndex对象

创建多级索引对象

#创建多级索引对象,pandas.MultiIndex.from_tuples从元组创建多级索引
pandas.MultiIndex.from_arrays#从数组
pandas.MultiIndex.from_product#从笛卡尔积
pandas.MultiIndex.from_frame#从数据框
keys = [("Lily","apples"),("Lily","bananas"),("Lily","oranges"),
        ("Tom","apples"),("Tom","bananas"),("Tom","oranges"),
        ("Pilph","apples"),("Pilph","bananas"),("Pilph","oranges")]
keys
index = pd.MultiIndex.from_tuples(keys,names=["names","fruits"])     
data=[1,2,3,13,45,2,3,4,7]
w = pd.Series(data,index=index)
w

Out:
在这里插入图片描述

多级索引行列转换

1.unstack()方法可以快速将一个多级索引的 Series转化为普通索引的DataFrame

w.unstack()

Out:
在这里插入图片描述

2.stack()方法可以将一个普通索引的 Dataframe转化为多级索引的Series

df.stack()

Out:
在这里插入图片描述

多级索引数据存取

多级索引数据存值可以使用运算符,也可以使用loc[]等存取器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值