2016-04-03 16 views
4

後、各グループをサンプリング:GROUPBY操作の後、各グループをサンプリングパンダ:私は、これはいくつかの場所が、私はちょうど</p> <p><strong>に問題</strong>それを見つけることができませんでしたが回答されている必要があります知っているGROUPBY

import pandas as pd 

df = pd.DataFrame({'a': [1,2,3,4,5,6,7], 
        'b': [1,1,1,0,0,0,0]}) 

grouped = df.groupby('b') 

# now sample from each group, e.g., I want 30% of each group 

答えて

7

はラムダを適用しますsampleとパラメーターfracとを呼び出します。

In [2]: 
df = pd.DataFrame({'a': [1,2,3,4,5,6,7], 
        'b': [1,1,1,0,0,0,0]}) 
​ 
grouped = df.groupby('b') 
grouped.apply(lambda x: x.sample(frac=0.3)) 

Out[2]: 
    a b 
b   
0 6 7 0 
1 2 3 1 
+0

おっと、これを分かりました。とにかくお時間をありがとう。 – gongzhitaao

+0

ところで、どのようにインデックスの部分を取得するには? – gongzhitaao

+0

どういう意味ですか? – EdChum