【问题标题】:Calculating and storing the division between current row and previous row计算和存储当前行和前一行之间的除法
【发布时间】: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


【解决方案1】:

让我们在x列上做pct_change

df['change'] = df['x'].pct_change().fillna(0)

   ID     x    change
0   1  1400  0.000000
1   2  1500  0.071429
2   3  1600  0.066667

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多