【问题标题】:Pandas average of the ratio of column differences between any two consecutive rows in dataframe熊猫数据帧中任意两行连续行之间的列差异比率的平均值
【发布时间】:2017-04-23 18:47:43
【问题描述】:

这是对这个问题here 的后续跟进。为方便起见,我报告了一个示例数据框:

name   date         quantity
'A'    2016-12-02   20
'A'    2016-12-03   5
'A'    2016-11-30   10
'B'    2016-11-30   10
...

我需要做的是计算定义为的比率的平均值

数量差异/日期差异(天数)

每个名字。必须为按时间顺序排列的日期计算差异,并且数据框不一定按顺序显示它们。

上一个问题允许我计算分子的平均值,我将如何计算整个比率的平均值?

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    您可以使用自定义函数fdt.daysTimedelta 转换为days 并除以div

    def f(x):
        d = x.date.diff().dt.days
        q = x.quantity.diff()
        return (q.div(d)).mean()
    
    df1 = df.sort_values('date').groupby('name').apply(f).reset_index(name='ratio')
    print (df1)
      name  ratio
    0  'A'   -5.0
    1  'B'    NaN
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-24
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      相关资源
      最近更新 更多