【问题标题】:Averaging value based off previous value Python基于先前值 Python 的平均值
【发布时间】:2018-11-16 00:23:41
【问题描述】:

我有一个看起来像这样的数据框:

value 1         value 2
1               10
4               1
5               8
6               10
10              12

我想将value 1的每个条目向下,取之前的值取平均值,然后在value 2旁边创建一个带有平均值的新列。

输出需要如下所示:

value 1         value 2        avg
1               10             nan
4               1              2.5
5               8              4.5 
6               10             5.5
10              12             8.0
.
.

我该怎么做呢?

【问题讨论】:

  • 这完全取决于数据的表示方式。你有清单吗?列表列表?试着在问题中解释它,并添加一个你到目前为止尝试过的例子。

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


【解决方案1】:

shift

您可以将一个系列与其自身的移位版本相加:

df['avg'] = (df['value1'] + df['value1'].shift()) / 2

print(df)

   value1  value2  avg
0       1      10  NaN
1       4       1  2.5
2       5       8  4.5
3       6      10  5.5
4      10      12  8.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    相关资源
    最近更新 更多