python索引值相加,python – 对多索引pandas DataFrame求和

您可以使用

transform,但获取重复值:

df['No. of classes'] = df.groupby(level='Class')['val'].transform('size')

print (df)

val No. of classes

Class subclass

A a 1 4

b 4 4

c 5 4

d 4 4

B a 1 2

b 2 2

但如果需要空值:

df['No. of classes'] = df.groupby(level='Class')

.apply(lambda x: pd.Series( [len(x)] + [np.nan] * (len(x)-1)))

.values

print (df)

val No. of classes

Class subclass

A a 1 4.0

b 4 NaN

c 5 NaN

d 4 NaN

B a 1 2.0

b 2 NaN

另一个获得最大数量的Class的解决方案是:

df = df.groupby(level=['Class'])

.apply(lambda x: x.index.get_level_values('subclass').nunique())

.idxmax()

print (df)

A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值