У меня есть DataFrame, который выглядит примерно так: ~ 10 тыс. Строк:
peak start peak end motif_start motif_end strand
0 948 177 3210085 3210103 -
1 948 177 3210047 3210065 +
2 062 419 3223269 3223287 -
3 062 419 3223229 3223247 +
4 062 419 3223232 3223250 +
.
.
.
Некоторые строки повторяются от 2 до 8 раз в столбце «пиковое начало». Мне нужно вырезать новые строки DataFrame, которые повторяются ровно n раз (n между 2 и 8).
Желаемый вывод:
n=2
peak start peak end motif_start motif_end strand
0 948 177 3210085 3210103 -
1 948 177 3210047 3210065 +
n=3
peak start peak end motif_start motif_end strand
2 062 419 3223269 3223287 -
3 062 419 3223229 3223247 +
4 062 419 3223232 3223250 +
И так далее для каждого n.
Я пытался:
new_df = df.groupby('peak start').head(n)
, но он также возвращает первые n строк, для строк, которые повторяются более n раз.
Я новичок в Python, поэтому ищу, возможно, существующий метод, о котором я не знаю, вместо того, чтобы перебирать фрейм данных и считать.
Есть идеи?