假设我有一个名为 df 的熊猫DataFrame,看起来像这样
father_name child_name
Robert Julian
Robert Emily
Robert Dan
Carl Jack
Carl Rose
John Lucy
John Mark
John Alysha
Paul Christopher
Paul Thomas
Robert Kevin
Carl Elisabeth
我可以确定每个父亲至少有 2个孩子。
我想获得一个DataFrame,其中每个父亲都有正好个孩子,并且随机选择了这两个孩子。输出示例为
father_name child_name
Robert Emily
Robert Kevin
Carl Jack
Carl Elisabeth
John Alysha
John Mark
Paul Thomas
Paul Christopher
我该怎么做?
答案 0 :(得分:1)
您可以对分组的数据应用DataFrame.sample。它使用参数n,您可以将其设置为2
df.groupby('father_name').child_name.apply(lambda x: x.sample(n=2))\
.reset_index(1, drop = True).reset_index()
father_name child_name
0 Carl Elisabeth
1 Carl Jack
2 John Mark
3 John Lucy
4 Paul Thomas
5 Paul Christopher
6 Robert Emily
7 Robert Julian