pandas agg 后降低df表层

背景介绍 通常我们不会在Pandas中主动设置多层索引,但是如果一个字段做多个不同的聚合运算, 比如sum, max这样形成的Column Level是有层次的,这样阅读非常方便,但是对编程定位比较麻烦. # 数据准备

import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(0, 14).reshape(7,2),columns =[‘a’,’b’] )
df.a = df.a %3
df[‘who’] = ‘Bob’
df.loc[df.a%4==0,’who’] = ‘Alice’
————————————————

对一个字段同时用3个聚合函数

gp1 = df.groupby('who').agg({'b':[sum,np.max, np.min], 'a':sum})
gp1

索引是有层次的,虚要通过下面这种方式,个人感觉不是很方便.下面介绍2种方法来解决这个问题

有层次的索引访问方法

gp1.loc[‘Bob’, (‘b’, ‘sum’)]
1
2
28.0
1

直接去除一层

gp2 = gp1.copy(deep=True)
gp2.columns = gp1.columns.droplevel(0)
gp2
————————————————

把2层合并到一层

gp3 = gp1.copy(deep=True)
gp3.columns = ["_".join(x) for x in gp3.columns.ravel()]
gp3

原文链接:https://blog.csdn.net/flyfoxs/java/article/details/81346885

Original: https://www.cnblogs.com/canyangfeixue/p/13124695.html
Author: 残阳飞雪
Title: pandas agg 后降低df表层

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/9218/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部
最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总