gpt4 book ai didi

python - Pandas 数据帧 : comparing values of two adjacent rows and adding a column

转载 作者:行者123 更新时间:2023-11-28 17:22:38 25 4
gpt4 key购买 nike

我有一个 pandas Dataframe,我必须比较特定列的两个相邻行的值,如果它们相等,则在新列中需要在相应的第一行中添加 0,或者如果值在第二行大于第一行,如果小于第一行则为 -1。比如对下面的Dataframe进行这样的操作 dataframe before the operation

   column1
0 2
1 2
2 4
3 4
4 5
5 3
6 2
7 1
8 55
9 3

应该给出以下输出

dataframe after the operation

   column1  column2 
0 2 0
1 2 1
2 4 0
3 4 1
4 5 -1
5 3 -1
6 2 -1
7 1 1
8 55 -1
9 3 0

最佳答案

我们正在寻找的是变化的迹象。我们将其分为 3 个步骤:

  1. diff 将获取每一行与前一行的差异这会捕获更改。
  2. x/abs(x) 是捕捉某物符号的常用方法。当我们将 d 除以 d.abs() 时,我们在这里使用它。
  3. 最后,由于 diff 以及当我们除以零时,我们在第一个位置有一个残差 nan。我们可以用零填充它们。

df = pd.DataFrame(dict(column1=[2, 2, 4, 4, 5, 3, 2, 1, 55, 3]))
d = df.column1.diff()
d.div(d.abs()).fillna(0)

0 0.0
1 0.0
2 1.0
3 0.0
4 1.0
5 -1.0
6 -1.0
7 -1.0
8 1.0
9 -1.0
Name: column1, dtype: float64

关于python - Pandas 数据帧 : comparing values of two adjacent rows and adding a column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40701223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com