【问题标题】:How to calculate mean for a selected range?(pandas)如何计算选定范围的平均值?(熊猫)
【发布时间】:2021-03-07 16:58:41
【问题描述】:

我有一个类似的数据框

Date           Volume

9/23/2019      50
9/24/2019      234
9/25/2019      23124
9/26/2019      23412
9/27/2019      21213
9/30/2019      23241
10/1/2019      231323
10/2/2019      2312
10/3/2019      23213
10/4/2019      421020
10/7/2019      3212
10/8/2019      23122



import pandas as pd
i = input('enter credentials')
df = pd.read_csv('sample.csv')

我想在两个条件下计算平均值:

如果输入i为m,则计算月均值并按月显示结果,如果输入i为w,则应计算周均值并按周显示结果。

可以有更多的数据框,在这种情况下,一周有 5 天,一个月有 20 天。

【问题讨论】:

    标签: python python-3.x pandas dataframe numpy


    【解决方案1】:

    您还没有向我们展示输出,但根据描述,您可以尝试将输入传递给此函数(可扩展):

    首先将日期转换为实际的日期时间列:

    df['Date'] = pd.to_datetime(df['Date'],format='%m/%d/%Y')
    

    然后:

    def myinp(i,dataframe,datecol):
        freq_d = {'m':'m','w':'W'}
        return dataframe.groupby(dataframe[datecol]
              .dt.strftime(f"%{freq_d.get(i)}").rename(i)).mean()
    

    print("By m: \n",myinp('m',df,'Date'))
    print("---------------------------")
    print("By w: \n",myinp('w',df,'Date'))
    

    By m: 
                Volume
    m                
    09   15212.333333
    10  117367.000000
    ---------------------------
    By w: 
           Volume
    w           
    38   13606.6
    39  140221.8
    40   13167.0
    

    【讨论】:

    • 范围最小值和最大值的相同之处是什么?
    • @AtomStore 你是什么意思,对不起,我没有得到你的评论
    • 平均值是正确的,我想在相同的情况下计算最小值和最大值的范围,例如 [minimum,maximum]
    • @AtomStore 你的意思是如果你在myinp 中用agg(['min','max','mean']) 替换.mean()
    • 我希望音量为 [min,max]
    猜你喜欢
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-27
    • 2023-01-31
    • 2022-01-11
    • 2020-08-09
    相关资源
    最近更新 更多