gpt4 book ai didi

python - 删除数据框中每个 ID 的前 n 行

转载 作者:行者123 更新时间:2023-12-05 03:27:37 26 4
gpt4 key购买 nike

我有一个 DataFrame,有两列。我想删除每个 ID 的前 3 行值。如果 id少于或等于 三行,也删除这些行。如下所示,id 的 3 和 1 有 3 行和 2 行,所以应该删除它们。对于 ids 4 和 2,只保留第 4、5 行。

import pandas as pd
df = pd.DataFrame()
df ['id'] = [4,4,4,4, 4,2, 2,2,2,2,3,3,3, 1, 1]
df ['value'] = [2,1,1,2, 3, 4, 6,-1,-2,2,-3,5,7, -2, 5]

这是我想要的 DataFrame。

enter image description here

最佳答案

使用 groupby + cumcount 对每个“id”进行编号,并过滤编号大于 2 的行:

out = df[df.groupby('id').cumcount() > 2]

输出:

   id  value
3 4 2
4 4 3
8 2 -2
9 2 2

关于python - 删除数据框中每个 ID 的前 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71416865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com