【发布时间】:2022-06-10 21:22:18
【问题描述】:
我想计算 x(current value) 和 x(previous value) 之间的小数差,并将其存储到一个新的 Pandas 行中,用于一个巨大的表。
| ID | x |
|---|---|
| 1 | 1400 |
| 2 | 1500 |
| 3 | 1600 |
fractional_diff = (1500 / 1400) - 1
在第一行为 0 的情况下,最终结果应如下所示:
| ID | x | fractional_diff |
|---|---|---|
| 1 | 1400 | 0 |
| 2 | 1500 | 0.071428571 |
| 3 | 1600 | 0.066666667 |
顺便试了一下下面的代码...
# Dataframe if anyone needs it real quick:
data = [['1', 1400], ['2', 1500], ['3', 1600]]
data = pd.DataFrame(data, columns=['ID', 'x'])
# Initialize the variables
n = 1
# data['fractional_diff'] = 0
# for loop to calculate fractional_diff for all rows:
for values in data['x']:
data['x'][n] = (data['x'].loc[n] / data['x'].loc[n-1]) - 1
n = n + 1
if n > len(data['x']) - 1:
break;
data.head()
但由于某种原因,我不断收到回溯错误。任何帮助表示赞赏。
【问题讨论】:
-
df.x/df.x.shift() - 1.
标签: python python-3.x pandas machine-learning