28

データセットには col1 と col2 の 2 つの列があります。col1 に従ってデータをグループ化し、各グループのサイズに従ってデータを並べ替えます。つまり、グループをサイズの小さい順に表示したいのです。

次のように、データをグループ化して表示するためのコードを作成しました。

grouped_data = df.groupby('col1')
"""code for sorting comes here"""
for name,group in grouped_data:
          print (name)
          print (group)

データを表示する前に、グループ サイズごとに並べ替える必要がありますが、これはできません。

4

3 に答える 3

60

Pandas 0.17 以降の場合は、次を使用しますsort_values

df.groupby('col1').size().sort_values(ascending=False)

0.17 より前の場合、以下を使用できますsize().order()

df.groupby('col1').size().order(ascending=False)
于 2015-06-12T14:07:19.877 に答える
0
df = pandas.DataFrame([[5, 5], [9, 7], [1, 8], [1, 7], [7, 8],
                       [9, 5], [5, 6], [1, 2], [1, 4], [5, 6]],
                      columns=['A', 'B'])

  A B
0 5 5
1 9 7
2 1 8
3 1 7
4 7 8
5 9 5
6 5 6
7 1 2
8 1 4
9 5 6

group = df.groupby('A')

count = group.size()

count  
A  

1 4
5 3
7 1
9 2
dtype: int64

grp_len = count[count.index.isin(count.nlargest(2).index)]

grp_len   
A  

1 4
5 3
dtype: int64

于 2019-05-18T08:04:26.093 に答える