【发布时间】:2017-04-01 01:40:52
【问题描述】:
我希望能够计算数据框中列组的中位数。我有以下示例数据框。对于我的实际数据框,列数、列名和组名是动态的,因为它取决于用户输入。
raw_data= {'a':['g1','g2','g3','g4','g5'],'b':[10,11,12,13,14],'c':[5,6,7,8,9],'d':[112,1,0,9,8],'e':[6,7,8,0,9],'f':[0,1,6,7,8],'g':[9,8,6,5,4]}
mydf= pd.DataFrame(raw_data)
newdf= mydf.set_index('a')
我有另一个字典,用于存储我的列的组信息
gp_dict= {'gp1':['b','c','d'],'gp2':['e','f','g']}
当前数据框:
b c d e f g
a
g1 10 5 112 6 0 9
g2 11 6 1 7 1 8
g3 12 7 0 8 6 6
g4 13 8 9 0 7 5
g5 14 9 8 9 8 4
我的代码应该为每个组获取中值,如果任何组的中值大于 8,则保留行。
期望的输出:
b c d e f g
g1 10 5 112 6 0 9
g4 13 8 9 0 7 5
g5 14 9 8 9 8 4
显然,中间步骤应该是计算两组的中位数:
b c d e f g Median_gp1 Median_gp2
g1 10 5 112 6 0 9 10 6
g2 11 6 1 7 1 8 6 7
g3 12 7 0 8 6 6 7 6
g4 13 8 9 0 7 5 9 5
g5 14 9 8 9 8 4 9 8
【问题讨论】: