次の問題を解決しようとしています。パンダ:サブグループ内のデータフレームをソートし、等しい値をソートする問題
df = pd.DataFrame({'A': ['id1', 'id1', 'id2', 'id2', 'id2','id2', 'id2', 'id2','id2', 'id3', 'id3', 'id3'] ,
'B': [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21] ,
'C': [101 , 32, 10, 9, 15, 15, 15, 15, 15, 40, 36, 36]})
df
Out[16]:
A B C
0 id1 10 101
1 id1 11 32
2 id2 12 10
3 id2 13 9
4 id2 14 15
5 id2 15 15
6 id2 16 15
7 id2 17 15
8 id2 18 15
9 id3 19 40
10 id3 20 36
11 id3 21 36
私は今カラムC
の値をカラムA
のID値によって定義された各サブグループの昇順にソートされるように、データフレームを再配置したい: は、私は、次のデータフレームdf
を有します。私は以下のコードを使用します。
df2 = df
df2 = df2.sort_values(by=['A','C'], ascending=True).groupby('A').head()
をし、私はこれを取得:
df2
Out[18]:
A B C
1 id1 11 32
0 id1 10 101
3 id2 13 9
2 id2 12 10
4 id2 14 15
5 id2 15 15
6 id2 16 15
10 id3 20 36
11 id3 21 36
9 id3 19 40
すべて正しくソートされているA
COL内のサブグループid1
に対応するC
の値だけでなく、それらの値をサブグループid3
に対応します。しかし、COL A
でid2
に対するCOL C
のソート操作は2つの行が...スキップした
print len(df.index), len(df2.index)
12 10
任意のアイデアは、なぜこれが起こるんし、どのようにこの問題を解決するために? 何か助けていただければ幸いです。
おかげで、 MarcoCのでご.groupby('A').head()
の
'head()'は、デフォルトでトップ5の値を取得します。 – Jarad
ありがとう@ジャラド。確かに、それは間違いです。 – MarcoC