如何使用 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
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