この一般的なトピックについて他の質問が検索されましたが、この特定の質問に対する回答が見つかりません。グループ化されたDataFrameのグループ内で1つの列を並べ替える
私はいくつかのデータフレームを一緒に追加して作成したデータフレームを持っており、それに続いてgroupbyとaggプロシージャがあります。
私は以下のサンプルデータフレームをプロセスに従うだけで構築しました。
# constructing an example dataframe
import numpy as np
import pandas as pd
rand = np.random.RandomState(1)
df1 = pd.DataFrame({'B': ['subgroup1'] * 6,})
df2 = pd.DataFrame({'B': ['subgroup2'] * 6,})
df2['date'] = '1-1-2017'
df2['C'] = rand.rand(6)
df3 = pd.DataFrame({'B': ['subgroup1'] * 6,})
df3['date'] = '1-2-2017'
df3['C'] = rand.rand(6)
df4 = pd.DataFrame({'B': ['subgroup2'] * 6,})
df4['date'] = '1-2-2017'
df4['C'] = rand.rand(6)
df5 = df1.append(df2)
df6 = df5.append(df3)
df7 = df6.append(df4)
print df7
B date C
0 subgroup1 1-1-2017 0.417022
1 subgroup1 1-1-2017 0.720324
2 subgroup1 1-1-2017 0.000114
3 subgroup1 1-1-2017 0.302333
4 subgroup1 1-1-2017 0.146756
5 subgroup1 1-1-2017 0.092339
0 subgroup2 1-1-2017 0.186260
1 subgroup2 1-1-2017 0.345561
2 subgroup2 1-1-2017 0.396767
3 subgroup2 1-1-2017 0.538817
4 subgroup2 1-1-2017 0.419195
5 subgroup2 1-1-2017 0.685220
0 subgroup1 1-2-2017 0.204452
1 subgroup1 1-2-2017 0.878117
2 subgroup1 1-2-2017 0.027388
3 subgroup1 1-2-2017 0.670468
4 subgroup1 1-2-2017 0.417305
5 subgroup1 1-2-2017 0.558690
0 subgroup2 1-2-2017 0.140387
1 subgroup2 1-2-2017 0.198101
2 subgroup2 1-2-2017 0.800745
3 subgroup2 1-2-2017 0.968262
4 subgroup2 1-2-2017 0.313424
5 subgroup2 1-2-2017 0.692323
2列によって次に、I群、及び列「C」の平均値からなる新しい列、および値を平均カウント新しい列を追加します。
group = df7.groupby(['date', 'B'])['C'].agg({'num' : len, 'C_mean' : np.mean})
print group
num C_mean
date B
1-1-2017 subgroup1 6.0 0.279815
subgroup2 6.0 0.428637
1-2-2017 subgroup1 6.0 0.459403
subgroup2 6.0 0.518874
DataFrame 'group'は、私が今までに持っていたのと同じ構造を示す小さな例です。実際には、各日付グループには多数の行があります。
グループ化されたDataFrame 'グループ'を列 'C_mean'の値でソートしたいが、最初の列 '日付'のグループ内でソートする。ソートは降順でなければなりません。
グループ '1-1'2017'の 'C_mean'列の2つの値を見ると、0.428637と0.279815が降順でソートされています。私はこれを達成するために見つけることができるすべてを試みたが、中にいる0.518874と0.459403
num C_mean
date B
1-1-2017 subgroup1 6.0 0.428637
subgroup2 6.0 0.279815
1-2-2017 subgroup1 6.0 0.518874
subgroup2 6.0 0.459403
- と同様に次の日のグループの2017年1月2日 "に、「C_mean」の値が降順にソートされますすべての場合、私は列C_mean全体の一種で終わった - 私は日付グループ内で並べ替える必要があります。
誰かが解決策を提案できますか?