如何在按另一列值的大小调整多组(每组数量不一样)列值相同的行的排序
比如,每天对 abcdef 等 3000 人量体重,连续 100 天,然后去除异常值(最后效果就是 a 可能测量了 100 次,b 只有 90 次,所以每组数量不一样)。最后筛选出有体重逐日增加超过 10 天记录的人
dataframe 类似如下
0 名字 体重 日期
1 a 100.00 1-1
2 b 110.00 1-1
3 c 120.00 1-1
4 a 101.00 1-2
5 b 111.00 1-2
...
最笨的解法我觉得是
1 先 for 出 3000 个 dataframe
2 sort by 日期
3 创建新的列 记录每日体重差值
4 所有的 dataframe 拼一起
5 新建列 rolling 之前创建新列数值乘积
6 判断刚才创建的列的数值是否大于 0
有没有优雅一点解法的建议。。。谢谢了!
1
imn1 2020-01-23 17:48:11 +08:00
groupby 名字分组
日期可做 timeline/index 最后 where |
2
yellowtail OP @imn1 谢谢!
|
3
ForDarkLight 2020-01-24 08:27:28 +08:00 via Android
可以先把体重和时间拼成 list,然后 grouoby 和 apply,函数里面进行排序和循环等方式来判断是否大于 10 天,最后返回 0 或者 1,然后布尔索引就好了
|