【问题标题】:Compare averages of a values corresponding to 2 different dates?比较对应于 2 个不同日期的值的平均值?
【发布时间】:2020-01-23 17:11:50
【问题描述】:

我有一张这样的桌子:

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

我想为高低添加一列。该列的逻辑应该是,只要学生今天的平均分数大于该值

avg(score)(for current date) < ( avg(score)(for previous day) - (90% * avg(score)(for previous day) /100)

我不知道如何在我的公式中加入日期部分。它将当天的平均值与前一天的平均值进行比较。

我正在与 Pandas 合作,所以我想知道是否有办法将其纳入其中。

【问题讨论】:

    标签: python pandas date average data-science


    【解决方案1】:

    IIUC,

    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
    

    【讨论】:

    • 谢谢 :) 这对我正在寻找的东西进行了一点改动。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-08
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多