2017-07-02 6 views
0

以下のデータフレームでは、adamは電子メールで2回、電話で1回連絡を受けました。 sum()を使用して電子メールの総使用状況をカウントすると、正しい結果が得られます。2. count()を使用すると、adamは3になります。 どうしてですか? .count()はTrueとFalseブール値を区別しませんか?パンダデータフレーム.countと.sumの違いを混同する

df = pd.DataFrame ({'Name':['adam','ben','adam','adam','ben'], 'Type' ['Email', 'Phone', 'Email','Phone','Phone']}, index =[0,1,2,3,4]) 

df.groupby('Name')['Type'].apply(lambda x: x.isin(['Email']).sum()) 
df.groupby('Name')['Type'].apply(lambda x: x.isin(['Email']).count()) 

答えて

2

count方法の技術的な定義は、非欠損値をカウントすることです。すべての値が欠損していないので、単に各グループの行数を返します。

+0

ありがとうございます。私はpydata.orgでCountが非NA/null観測数のシリーズを返すことを見た。私はそれが欠損値ではないということを知らなかった。ありがとうございました。 –

関連する問題