2017-01-15 3 views
3

私はデータフレームを持っていると私は、私はこれらのユニークなの回数ごとに私を伝えるために呼び出しを行うにしようとしています名前カウント

array(['Katherine', 'Robert', 'Anne', nan, 'Susan', 'other'], dtype=object) 

と呼ばれるデータフレームの中に1列で探しています名前が列に表示されます。たとえば、キャサリンなどのインスタンスが223ある場合などです。 どうすればよいですか?私は、彼らはあなたがそれを達成することにより、グループを使用することができ、別の一意の値

+1

'value_counts'はあなたが望むものです。複数のオカレンスがある場合は、それらを表示する必要があります。あなたがそれをしていないと思うなら、問題を示す完全な例を示してください。固有の値のリストではなく、実際のカラムで '.value_counts()'を使う必要があることに注意してください。 – BrenBarn

+0

@BrenBarnこの質問のための欺瞞がある必要があります、それは何度も尋ねられましたが、まだ検索しています – EdChum

答えて

5

私が正しくあなたを理解していれば、あなたはpandas.Series.value_countsを使用することができます。

例:

import pandas as pd 
import numpy as np 

s = pd.Series(['Katherine', 'Robert', 'Anne', np.nan, 'Susan', 'other']) 

s.value_counts() 

Katherine 1 
Robert  1 
other  1 
Anne   1 
Susan  1 
dtype: int64 

あなただけのそれぞれの名前のいずれかを持って提供されたデータ - ので、ここでは、複数の「キャサリン」のエントリを持つ例です。

s = pd.Series(['Katherine','Katherine','Katherine','Katherine', 'Robert', 'Anne', np.nan, 'Susan', 'other']) 

s.value_counts() 

Katherine 4 
Robert  1 
other  1 
Anne   1 
Susan  1 
dtype: int64 

あなたに適用された場合データフレームを次のように呼び出します:

df['names'].value_counts() 
+0

dropna = "偽" – user2921352

0

あるためvalue_countsはちょうどこれらのそれぞれに対して1を示して知っている:

df[['col1']].groupby(['col1']).agg(['count']) 
+0

私はこれが動作するとは思わない。 'df [['col1']]'は、1列のDataFrameを返します。その列にDataFrameをグループ化すると、 'agg'は集計する他の列を見つけることができません。 'agg( 'count')'の代わりに '.size()'を使うことができますが、私は 'value_counts'を使うでしょう。 – ayhan