如何使用 pandas 操作数组中的数据

How to manipulate data in arrays using pandas

dataframe 中有数据,需要比较一列的当前值和另一列的先验值。当前时间是该数据框中的第 5 行,这是所需的输出:

目标数据被流式传输并捕获到 DataFrame 中,然后该数组乘以一个常量以生成另一列,但是无法生成第三列 comp,它应该将 prod 的当前值与先前的值进行比较来自 comp 的补偿值。

df['temp'] = self.temp
df['prod'] = df['temp'].multiply(other=const1)

另一位用户建议使用此逻辑,但它会产生错误,因为例程的数组与 DataFrame 的大小不匹配:

for i in range(2, len(df['temp'])):
    df['comp'].append(max(df['prod'][i], df['comp'][i - 1]))

让我们试试这个,我认为这会捕捉到您想要的逻辑:

df = pd.DataFrame({'col0':[1,2,3,4,5]
                  ,'col1':[5,4.9,5.5,3.5,6.3]
                  ,'col2':[2.5,2.45,2.75,1.75,3.15]
                  })

df['col3'] = df['col2'].shift(-1).cummax().shift()

print(df)

输出:

   col0  col1  col2  col3
0     1   5.0  2.50   NaN
1     2   4.9  2.45  2.45
2     3   5.5  2.75  2.75
3     4   3.5  1.75  2.75
4     5   6.3  3.15  3.15