【问题标题】:Adding a column thats result of difference of rows and shift in pandas添加一列,这是行数差异的结果,并在熊猫中移动
【发布时间】:2023-01-20 22:03:50
【问题描述】:

可以说我有一个这样的数据框

Column A
a
b
c
d
e
f

a、b、c、d、e、f 是值。我需要能够向通过计算行的差异获得的原始数据框添加一列。

所以我需要这样的东西

Column A New
a b-a
b 0
c d-c
d 0
e f-e
f 0

我在数据框/系列上看到了一个叫做 diff 的东西,但它的表现略有不同,因为第一个元素将变成 Nan

【问题讨论】:

  • 使用 diff 但顺序相反,然后用 0 替换奇数索引?

标签: python pandas dataframe for-loop difference


【解决方案1】:

您可以使用:

import numpy as np

df['New'] = df['Column A'].diff(-1).mul(-1).mask(np.arange(len(df))%2==1, 0)

【讨论】:

    【解决方案2】:

    你可以使用.shift(-1)

    df['New'] = df[0].shift(-1) - df[0]
    df.loc[df.index % 2 == 1, 'New'] = 0
    

    【讨论】:

      猜你喜欢
      • 2014-06-02
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      • 2018-07-24
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      相关资源
      最近更新 更多