我有一个这样的数据框:index value idxmin idxmax0 300 nan nan1 200 nan nan2 100 nan nan3 200 0 24 300 1 25 400 1 36 500 2 57 600 4 58 700 4 79 800 5 810 900 5 811 800 7 912 700 8 1013 600 10 1214 500 12 1315 400 12 1416 500 12 1517 400 13 1518 500 13 1619 600 15 1720 700 15 19我想创建一个新列(最大值),它将返回行范围的“值”列的最大值。示例:对于第 9 行,第 5 行到第 8 行的“值”的最大值为 800。我已经制作了这段代码,它实际上正在运行但效率不高df['maxvalue'] = df.apply(lambda x : (df['value'].loc[x['idxmin']:x['idxmax']].max(), axis=1)您是否有更有效的代码来执行该功能?我期望的结果(最后一栏):index value idxmin idxmax maxvalue0 300 nan nan nan1 200 nan nan nan2 100 nan nan nan3 200 0 2 3004 300 1 2 2005 400 1 3 2006 500 2 5 4007 600 4 5 4008 700 4 7 6009 800 5 8 70010 900 5 8 70011 800 7 9 80012 700 8 10 90013 600 10 12 90014 500 12 13 70015 400 12 14 70016 500 12 15 70017 400 13 15 60018 500 13 16 60019 600 15 17 50020 700 15 19 600非常感谢您的帮助 !!
添加回答
举报
0/150
提交
取消