2017-01-11 5 views
3

私はDataframeを以下している:どのように取得するデータフレームでの発生回数は?

[[105, Coca-Cola1, 3], 
[106, Coca-Cola2, 1], 
[115, Coca-Cola5, 3], 
[108, Coca-Cola8, 1]] 

任意のアイデア:

   fk name 
0    105 Coca-Cola1 
1    105 Coca-Cola1 
2    106 Coca-Cola2 
3    115 Coca-Cola5 
4    115 Coca-Cola5 
5    115 Coca-Cola5 
6    108 Coca-Cola8 
7    105 Coca-Cola1 

が、私は発生頻度をカウントしたいですか?

答えて

6

あなたはnumpy.ndarray.tolistDataFrame.valuesによってnumpy arrayreset_index、その後、sizeを集約してgroupbyを使用して、最後の変換することができます:

df = df.groupby(['fk','name']).size().reset_index().values.tolist() 
print (df) 
[[105, 'Coca-Cola1', 3], 
[106, 'Coca-Cola2', 1], 
[108, 'Coca-Cola8', 1], 
[115, 'Coca-Cola5', 3]] 

groupbyするための重要な追加パラメータsort=Falseの場合:

df = df.groupby(['fk','name'], sort=False).size().reset_index().values.tolist() 
print (df) 
[[105, 'Coca-Cola1', 3], 
[106, 'Coca-Cola2', 1], 
[115, 'Coca-Cola5', 3], 
[108, 'Coca-Cola8', 1]] 
+0

些細な変更を - 'sort = False'で注文を保持します。 –

+0

@NickilMaveli - ありがとう。 – jezrael

関連する問題