【问题标题】:How to take average first 10 150 rows of column and use average value as first value of column and second value of column start from row 151如何取列的前 10 150 行的平均值并将平均值用作列的第一个值和列的第二个值,从第 151 行开始
【发布时间】:2019-03-21 15:31:50
【问题描述】:

我正在尝试计算前 150 行列的平均值,并将平均值用作列的第一个值,将第 151 行用作列的第二行,依此类推……python 中有没有可以解决这个问题的包。

注意:只需要取前 150 行的平均值,其他行保持与原始数据帧相同。

这是我的数据和所需的输出:

print (df)
      col2  desired_output
0   14.375       14.261111
1   14.350       14.175000
2   14.300       14.125000
3   14.350       14.150000
4   14.300       13.974000
5   14.225       14.074000
6   14.175       14.099000
7   14.150       13.949000
8   14.125       13.899000
9   14.175       13.849000
10  14.125       13.749000
11  14.150       13.774000
12  13.974             NaN
13  14.074             NaN
14  14.099             NaN
15  13.949             NaN
16  13.899             NaN
17  13.849             NaN
18  13.749             NaN
19  13.774             NaN

在这个示例数据中,我取 col2 的前 9 个值的平均值,并将其作为 desired_output 的第一个值

【问题讨论】:

  • 您能否为平均3 行添加一些具有预期输出的示例数据?
  • @jezrael 请检查数据
  • 谢谢,但是我不能复制数据,因为图片,可以在文本中粘贴数据吗?
  • 请检查您的电子邮件,刚才我在您的邮件中向您发送了数据。谢谢
  • 答案已编辑。

标签: python-3.x pandas


【解决方案1】:

您可以使用Series.shift 并将列的第一个值设置为meanDataFrame.iloc 用于计数优先N 值:

N = 9
df['new'] = df['col2'].shift(-N+1)
df.loc[0, 'new'] = df.iloc[:N, df.columns.get_loc('col2')].mean()

print (df)
      col2  desired_output        new
0   14.375       14.261111  14.261111
1   14.350       14.175000  14.175000
2   14.300       14.125000  14.125000
3   14.350       14.150000  14.150000
4   14.300       13.974000  13.974000
5   14.225       14.074000  14.074000
6   14.175       14.099000  14.099000
7   14.150       13.949000  13.949000
8   14.125       13.899000  13.899000
9   14.175       13.849000  13.849000
10  14.125       13.749000  13.749000
11  14.150       13.774000  13.774000
12  13.974             NaN        NaN
13  14.074             NaN        NaN
14  14.099             NaN        NaN
15  13.949             NaN        NaN
16  13.899             NaN        NaN
17  13.849             NaN        NaN
18  13.749             NaN        NaN
19  13.774             NaN        NaN

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多