pandas分组计算平均值_pandas索引,分组计算

本文介绍了如何使用pandas进行多层次索引和分组计算,包括行索引、重复索引和层次化索引的概念,以及如何进行分组计算,如拆分、应用和合并操作。讲解了对Series和DataFrame的分组,通过unstack方法重塑结果,通过字典和函数进行分组,并展示了按索引级别分组的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

索引

1.行索引

#看一个一维数组的索引
s=pd.Series(np.random.randn(5),index=list('abcde'))
s
s.index#Series的索引
s.index.name='zrx'#给索引赋一个名字
#查询pandas里预置的索引的类
pd.*index?

2.重复索引

#重复索引
s=pd.Series(np.arange(6),index=list('abcabe'))
s
s['a']
out[10]:
a    0
a    3
dtype: int32


s.index.is_unique#判断索引里面有无重复的
s.groupby(s.index).sum()#处理重复索引,把重复索引求和
s.groupby(s.index).mean()#处理重复索引,把重复索引求平均
s.groupby(s.index).first()#处理重复索引,把重复索引只取第一项

3.层次化索引

可以使数据在一个轴上有多个索引级别。即可以用二维的数据表达更高维度的数据,使数据组织方式更清晰。它使用 pd.MultiIndex 类来表示。
比如我们在分析股票数据,我们的一级行索引可以是日期;二级行索引可以是股票代码,列索引可以是股票的交易量,开盘价,收盘价等等。这样我们就可以把多个股票放在同一个时间维度下进行考察和分析。

#多级索引pd.MultiIndex
a = [['a', 'a', 'a', 'b', 'b', 'c', 'c'], [1, 2, 3, 1, 2, 2, 3]]
tuples = list(zip(*a))#把两个列表组装成一个,列表里的元素是元组
tuples
index=pd.MultiIndex.from_tuples(tuples,names=['level1','level2'])
index
s=pd.Series(np.random.randn(7),index=index)
s
#选取一级索引
s['b']

s['b',2]

dataframe 多层索引

df = pd.DataFrame(np.random.randint(1, 10, (4, 3)), #选取1-10之间随机数,四行三列
                  index=[['a', 'a', 'b', 'b'], [1, 2, 1, 2]], 
                  columns=[['one', 'one', 'two'], ['blue', 'red', 'blue']])
df
df.index.names = ['row-1', 'row-2']
df.columns.names = ['col-1', 'col-2']

4b05c92205ab19fef72c3ae6ddf8dcd4.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值