90

条件選択に基づいてデータフレームの行数を取得したい。次のコードを試しました。

print df[(df.IP == head.idxmax()) & (df.Method == 'HEAD') & (df.Referrer == '"-"')].count()

出力:

IP          57
Time        57
Method      57
Resource    57
Status      57
Bytes       57
Referrer    57
Agent       57
dtype: int64

出力には、データフレーム内の各列のカウントが表示されます。代わりに、上記のすべての条件が満たされた単一のカウントを取得する必要がありますか? これを行う方法?私のデータフレームについてさらに説明が必要な場合は、お知らせください。

4

4 に答える 4

115

あなたはすべての条件が真である条件を求めているので、あなたが求めていることを誤解しない限り、フレームのlenが答えです

In [17]: df = DataFrame(randn(20,4),columns=list('ABCD'))

In [18]: df[(df['A']>0) & (df['B']>0) & (df['C']>0)]
Out[18]: 
           A         B         C         D
12  0.491683  0.137766  0.859753 -1.041487
13  0.376200  0.575667  1.534179  1.247358
14  0.428739  1.539973  1.057848 -1.254489

In [19]: df[(df['A']>0) & (df['B']>0) & (df['C']>0)].count()
Out[19]: 
A    3
B    3
C    3
D    3
dtype: int64

In [20]: len(df[(df['A']>0) & (df['B']>0) & (df['C']>0)])
Out[20]: 3
于 2013-06-26T14:14:12.050 に答える