在dataframe中拥有数据,并需要比较一列的当前值和另一列的先验值。当前时间是这个数据文件中的第5行,下面是所需的输出:
将目标数据流并捕获到DataFrame中,然后将该数组乘以一个常数以生成另一列,但是无法生成第三列comp
,后者应将prod的当前值与来自comp
的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]))
发布于 2019-12-30 03:12:09
让我们尝试一下,我认为这将捕捉到您的预期逻辑:
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
https://stackoverflow.com/questions/59524226
复制相似问题