2
データフレームの列のグループの中央値を計算したいと考えています。私は次の例のデータフレームを持っています。実際のデータフレームでは、列数、列名、グループ名はユーザーの入力に応じて動的です。パンダのデータフレーム群のメジアンを取得
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
、中間ステップは、両方のグループに中央値をcalcuateする必要があります:
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
非常に素晴らしい、解決策はほとんど自然言語のように読み取ります:「私は中央値を取得し、その後、GROUPBYしたい、それが任意の行のために8以上であるかどうかを確認し、」juanpa.arrivillaga @ –
- ありがとう、あなたは正しい。 – jezrael
私はあなたが 'groupby'に辞書を渡すことができるのか分からなかった...それはクールです! – piRSquared