此问题已在此处有答案:
Pandas get topmost n records within each group(6个回答)
5天前关闭。
假设我有一个 Dataframe ,如
a b c
1 2 3
1 2 3
.
.
我想允许,比如说,100个重复的值a
和b
对,也就是说,有200对a=1
和b=2
,那么我想保留其中的100对。
我不能在GroupBy
Dataframe 上使用duplicated
,因此我不知道如何解决这个问题
此问题已在此处有答案:
Pandas get topmost n records within each group(6个回答)
5天前关闭。
假设我有一个 Dataframe ,如
a b c
1 2 3
1 2 3
.
.
我想允许,比如说,100个重复的值a
和b
对,也就是说,有200对a=1
和b=2
,那么我想保留其中的100对。
我不能在GroupBy
Dataframe 上使用duplicated
,因此我不知道如何解决这个问题
4条答案
按热度按时间2w3kk1z51#
yquaqz182#
我相信你可以这样做:
tzcvj98z3#
一个选项是按
a
、b
分组。做一个cumcount
,然后过滤。* 示例:*要保留前3行,请执行以下操作:
q8l4jmvw4#
您可以通过将groupby方法与pandas中的head方法结合使用来实现这一点。这里有一个解决方案,只保留每对'a'和'b'的前100个副本:
此代码段将按“a”和“b”列对DataFrame进行分组,然后只保留每组的前100行。如果特定对的重复项少于100个,它将保留所有重复项。