Pandas \ Python:通过成对比较创建新的数据框

问题描述

我有一个示例DataFrame。

df = pd.DataFrame({'time':['12:00','12:01','12:02','12:03','12:04','12:05','12:06','12:07'],'begin':[6880,6930,6920,7095,7025,7300,7130,7110],'up':[7034,6995,7105,7415,7420,7230,7195],'down':[6880,6845,6869,6885,6894,7090,7045,6990],'end':[6930,7110,7055]})
df = df.set_index('time')

        begin   up      down    end
time                
12:00   6880    7034    6880    6930
12:01   6930    6995    6845    6920
12:02   6920    7105    6869    7095
12:03   7095    7105    6885    7025
12:04   7025    7415    6894    7300
12:05   7300    7420    7090    7130
12:06   7130    7230    7045    7110
12:07   7110    7195    6990    7055

算法:

  1. 对于索引列time的第一行和第二行:(与第一行相同)= 12:00

  2. 对于列begin的第一行和第二行:(将是第一行的“开始”)new_begin = 6880

  3. 对于列up的第一行和第二行:如果'up_row1'>'up_row2':new_up = up_row1否则:up_row2

  4. 对于列down的第一行和第二行:如果'down_row1'

  5. 对于列end的第一行和第二行:(将是第二行的“结尾”)new_end = 6920

    第三排和第四排以及其他两排的依此类推

因此结果必须完全像这样

        begin   up      down    end
time                
12:00   6880    7034    6845    6920
12:02   6920    7105    6869    7025
12:04   7025    7420    6894    7130
12:06   7130    7230    6990    7055

在此先感谢您的帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)