2016-11-11 17 views
2

DataFrameの各一意の行の出現回数をどのように数えることができますか?pandas - データフレーム内の一意の行数

df = {'x1': ['A','B','A','A','B','A','A','A'], 'x2': [1,3,2,2,3,1,2,3]} 
df = pd.DataFrame(df) 

df 
    x1 x2 
0 A 1 
1 B 3 
2 A 2 
3 A 2 
4 B 3 
5 A 1 
6 A 2 
7 A 3 

そして、私はあなたがgroupbyへの引数としてのparam as_index=Falseを渡すことができ

x1 x2 count 
0 A 1  2 
1 A 2  3 
2 A 3  1 
3 B 3  2 
+0

申し訳ありませんあなたの現在のアプローチに何が問題なのですか?または 'len(df.groupby(['x1'、 'x2'])。count())'に基づいて最後に '4'を期待していますか? – EdChum

+0

'count'カラムを取得できません。私のコードは 'Empty DataFrame'を返します。 – Pepacz

+0

あなたは 'df ['count'] = df.groupby(['x1'、 'x2'])['x1']の後にいますか? – EdChum

答えて

3

IIUCを取得したいと思います:

In [100]: 
df.groupby(['x1','x2'], as_index=False).count() 

Out[100]: 
    x1 x2 count 
0 A 1  2 
1 A 2  3 
2 A 3  1 
3 B 3  2 
0

また、重複行をドロップすることができます:

In [4]: df.shape[0] 
Out[4]: 8 

In [5]: df.drop_duplicates().shape[0] 
Out[5]: 4 
関連する問題