python - 比较对应于 2 个不同日期的值的平均值?
问题描述
我有一张这样的桌子:
Date Student Average(for that date)
17 Jan 2020 Alex 40
18 Jan 2020 Alex 50
19 Jan 2020 Alex 80
20 Jan 2020 Alex 70
17 Jan 2020 Jeff 10
18 Jan 2020 Jeff 50
19 Jan 2020 Jeff 80
20 Jan 2020 Jeff 60
我想为高低添加一列。该列的逻辑应该是,只要学生今天的平均分数大于该值 < 前几天分数的 90%,它就很高。就像我的比较看起来像这样:
avg(score)(for current date) < ( avg(score)(for previous day) - (90% * avg(score)(for previous day) /100)
我不知道如何在我的公式中加入日期部分。它将当天的平均值与前一天的平均值进行比较。
我正在与 Pandas 合作,所以我想知道是否有办法将其纳入其中。
解决方案
国际大学联合会,
df['Previous Day'] = df.sort_values('Date').groupby('Student')['Average'].shift()*.90
df['Indicator'] = np.where(df['Average']>df['Previous Day'],'High','Low')
df
输出:
Date Student Average Previous Day Indicator
0 2020-01-17 Alex 40 NaN Low
1 2020-01-18 Alex 50 36.0 High
2 2020-01-19 Alex 80 45.0 High
3 2020-01-20 Alex 70 72.0 Low
4 2020-01-17 Jeff 10 NaN Low
5 2020-01-18 Jeff 50 9.0 High
6 2020-01-19 Jeff 80 45.0 High
7 2020-01-20 Jeff 60 72.0 Low
推荐阅读
- docker - docker-compose中标签的实际用途是什么
- c++ - 多平台库设计。最佳实践
- c# - MySQL 查询的 StringBuilder 空值检查
- sql - 加入给定日期之前的最新值
- spring-batch - Spring批处理异步步骤
- node.js - 如何在 Hapijs 中流式传输 JSON 请求?
- ios - iOS 11,无法选择照片
- conda - 安装 oracle-instantclient 与 conda install oracle-instantclient tsnames 的区别
- json - 如何解决 org.json.JSONException:索引没有值
- android - inapp 浏览器无法在 iphone s6 上运行