【发布时间】:2021-11-08 09:04:07
【问题描述】:
假设我们有这样的数据框
np.random.seed(123)
df = pd.DataFrame(np.random.randint(100,size=(4, 4)),columns = pd.MultiIndex.from_product([['exp0','exp1'],['rnd0','rnd1']],names=['experiments','rnd_runs']))
df['grp1','cat'] = ['A','A','B','B']
df['grp2','cat2'] = ['C','C','C','B']
experiments exp0 exp1 grp1 grp2
rnd_runs rnd0 rnd1 rnd0 rnd1 cat cat2
0 66 92 98 17 A C
1 83 57 86 97 A C
2 96 47 73 32 B C
3 46 96 25 83 B B
我想将('exp0', 'rdn0') 列中的count 值与groupby ('grp1','cat') 结合起来
所以我尝试了;
df['exp0_cnt','rdn0'] = df.groupby([('grp1','cat')])[('exp0', 'rdn')].apply(sum(x > 50 for x in df[(('exp0', 'rdn'))]))
但出现错误
TypeError: other 必须是 MultiIndex 或元组列表
这是类似的帖子,我想我正在使用tuples 进行多级列调用。
conditional on multi header pandas dataframe
pandas dataframe groupby on multiindex
Better way for creating columns in a multi level columns pandas dataframe
【问题讨论】:
标签: python pandas dataframe pivot-table multi-index