A列与B列上一行的值比较 B列也要与A列上一行的值比较

这样看的话,就是交叉比较,每一个值都只和另一列的上一行值有关,那么我们完全可以将a列和b列拆分开,按照这种交叉形式重新组合出c列和d列,也就是将a列和b列的每个元素交叉互换一下。

a = [0, 1, 2, 3]
b = [a, b, c, d]
c = [0, b, 2, d]
d = [a, 1, c, 3]


如此一来,问题就简化成对c和d直接做 cummin 了

最后的两列就是答案

df = pd.DataFrame(np.random.random((10,2)),
                  columns = ['A', 'B'])
df['sign'] = df.index % 2
'''swap A and B to generate AA and BB
AA -> sign == 0:
  A even row + B odd row
BB -> sign == 1:
  A odd row + B even row
'''
df[['AA','BB']] = df[['A','B']].where(df['sign'] == 0, df[['B','A']].values)
df[['minA','minB']] = df[['AA','BB']].cummin().where(df['sign'] == 0, df[['BB','AA']].values)
df

condition和sign两个条件需要一起考虑才行,我这样做不对。加入了condition后问题复杂了

posted @   C羽言  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示