簡體   English   中英

熊貓用於遞歸數據

[英]Pandas for recursive data

在此處輸入圖片說明

如何創建第一個單元格與后續單元格具有不同熊貓公式的數據框?

從上面可以看出,Ave Gain的第一個單元只是前兩個增益的平均值:(1.84 + 0)/ 2 = 0.92。 對於Ave Loss的第一個像元類似:(0.07 + 0)/ 2 = 0.035

但是,平均收益的第二個單元是先前的平均收益(0.92)+新的收益(1.62)除以2:(0.92 + 1.62)/ 2 = 1.27

而第三個像元是先前的Ave Gain(1.27)+新的增益(1.61)除以2 ::((1.27 + 1.61)/ 2 = 1.44

1)我應該如何創建第一個單元格與后續單元格具有不同公式的數據框?

2)我如何為Ave Gain創建一個遞歸表(它使用自己的上一個值來計算下一個值)

謝謝

看來原來的方法無法正常工作,所以我更新了此答案。 而且它的工作方式實際上比第一個更簡單,更合乎邏輯。

代碼

import pandas as pd


x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a=pd.DataFrame(x)
a['Avg'] = [0 for m in x]
a['Avg'] = [sum(a[:i+1][0])/(i+1) for i, m in enumerate(a[0])]

print(a)

輸出

    0  Avg
0   1  1.0
1   2  1.5
2   3  2.0
3   4  2.5
4   5  3.0
5   6  3.5
6   7  4.0
7   8  4.5
8   9  5.0
9  10  5.5

由於它的工作方式與循環不同,因此,當您為當前行的計算值時,不能在上一行中引用值,因此它不存在。 因此,您需要將計算完全基於所擁有的數據。 使用enumeration您可以在列表理解中引用元素的索引,該索引可以隨時引用:i+1元素的子列表,並可以對該列表進行計算以模擬上一行的值。

用於實現此目的的以下問題的一些答案:

將計算出的列添加到熊貓數據框中

在python中使用map處理列表時獲取項目索引

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM