【发布时间】:2017-04-18 13:42:39
【问题描述】:
假设我有以下数据集:
uid iid val
1 1 2
1 2 3
1 3 4
1 4 4.5
1 5 5.5
2 1 3
2 2 3
2 3 4
3 4 4.5
3 5 5.5
从这些数据中,我想先按 uid 分组,然后从每个 uid 中获取最后 20% 的行数。
也就是说,由于 uid=1 有 5 行,我想从 uid=1 获取最后 1 行(5 的 20%)。
以下是我想做的:
df.groupby('uid').tail([20% of each uid])
谁能帮帮我?
【问题讨论】:
-
你想要的输出是什么?例如 uid == 3 ?
-
@edyvedy13 由于 uid==3 只有 2 行,2 * 0.2 = 0.4,所以我想要的 uid==3 输出为无。对于uid==1,我想要下面的uid iid val 1 5 5.5
标签: python pandas dataframe group-by