2017-05-22 78 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