2016-05-22 8 views
0

データフレーム内の列から値を取得し、それぞれのイベントごとにカウンタを保持できる関数を作成する際に問題が発生しています。データフレーム列の多くの異なる値のカウンタ

私は列大佐

Col Cnt 
A 1 
B 1 
A 2 
C 1 
B 2 
A 3 
C 2 

私の主な問題は、(...、A用、B用、C用カウンタ)各カウンタの値を保っているから列Cntをを生成したいですカーディナリティは非常に高く(数千の異なる値と約300万レコード) 私は最後のリソースとして次のように考えていました:

1 - 列に.unique()を適用し、その系列を変数varに格納します。

2 - 次を適用して、データフレームのすべての行を調べます。IF df.col = var.VALUE1、 cnt = cnt + 1;

3 - シリーズのすべての値を調べます。

この操作を少し効率的に実行できる機能や方法があれば、私は望んでいました。

ありがとうございます!

答えて

2

私が正しく理解している場合、

df["Cnt"] = df.groupby("Col").cumcount() + 1 

df 
Out[29]: 
    Col Cnt 
0 A 1 
1 B 1 
2 A 2 
3 C 1 
4 B 2 
5 A 3 
6 C 2 
+0

が、これは完璧です、ありがとう! – mik

関連する問題