2017-05-22 134 views

回答

13

將數字傳遞給樣本時使用min。考慮數據幀df

df = pd.DataFrame(dict(
     A=[1, 1, 1, 2, 2, 2, 2, 3, 4, 4], 
     B=range(10) 
    )) 

df.groupby('A', group_keys=False).apply(lambda x: x.sample(min(len(x), 2))) 

    A B 
1 1 1 
2 1 2 
3 2 3 
6 2 6 
7 3 7 
9 4 9 
8 4 8 
+0

這是一個天才的解決方案,謝謝! :) – Wboy

+0

@Wboy我很高興你喜歡它。 – piRSquared