23

pandas データ フレームがあり、それを 2 つの列 (たとえばcol1col2) でグループ化します。col1との固定値の場合col2(つまり、グループの場合)、 にいくつかの異なる値を設定できますcol3。3 番目の列から個別の値の数を数えたいと思います。

たとえば、これを入力として持っている場合:

1  1  1
1  1  1
1  1  2
1  2  3
1  2  3
1  2  3
2  1  1
2  1  2
2  1  3
2  2  3
2  2  3
2  2  3

このテーブル (データ フレーム) を出力として使用したいと思います。

1  1  2
1  2  1
2  1  3
2  2  1
4

2 に答える 2

27
df.groupby(['col1','col2'])['col3'].nunique().reset_index()
于 2013-07-29T14:16:46.870 に答える
21
In [17]: df
Out[17]: 
    0  1  2
0   1  1  1
1   1  1  1
2   1  1  2
3   1  2  3
4   1  2  3
5   1  2  3
6   2  1  1
7   2  1  2
8   2  1  3
9   2  2  3
10  2  2  3
11  2  2  3

In [19]: df.groupby([0,1])[2].apply(lambda x: len(x.unique()))
Out[19]: 
0  1
1  1    2
   2    1
2  1    3
   2    1
dtype: int64
于 2013-07-29T14:18:03.473 に答える