pandas - 如何使用 pandas 操作数组中的数据
问题描述
数据框中有数据,需要比较一列的当前值和另一列的值的先验。当前时间是此数据框中的第 5 行,这是所需的输出:
目标数据被流式传输并捕获到 DataFrame 中,然后将该数组乘以常数以生成另一列,但无法生成第三列comp
,该列应将 prod 的当前值与 comp from 的先前值进行比较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
推荐阅读
- node.js - 为什么在我尝试安装 Node.js 时会出现此消息?
- r - 安装后无法加载 kableExtra
- javascript - 插入空白 console.log() 调用时行为发生变化
- lua - 这段代码是如何工作的?有人说这是一个解决方案
- css - 如何在 JSON 中将 div 放在 div 下?
- html - 静态图像背景和滚动内容 css
- javascript - 如何使用 Image4io nodejs sdk 上传图片
- react-native - 如何使用 react-test-renderer 和 hooks 访问 redux 存储状态?
- mysql - 如何在 android studio 中修复 SQLNonTransientConnectionException
- python-3.x - 如何处理在 selenium 中具有不断变化的“css 选择器”值的 web 元素?