【发布时间】:2020-04-30 18:41:49
【问题描述】:
我的 DataFrame 看起来像这样,大约有 10k 行:
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 新手,所以寻找可能我不知道的现有方法,而不是遍历数据框并计数。
有什么想法吗?
【问题讨论】:
标签: python pandas dataframe duplicates