我正在尝试通过将行数据的“窗口”转换为列数据来重塑数据帧。例如,如果窗口大小为2,给定数据帧:
A B
0 a1 b1
1 a2 b2
2 a3 b3
3 a4 b4
我想制作数据帧:
A1 A2 B1 B2
0 a1 a2 b1 b2
1 a2 a3 b2 b3
2 a3 a4 b3 b4
这很棘手,因为旧数据帧中的单元格在生成的数据帧中可能没有唯一索引。你知道吗
我当然可以做一些复杂的事情,比如迭代旧数据框中的行,计算新数据框中单元格的位置,以及简单地复制数据。但我想要一个更简单的解决方案。。。你知道吗
Tags:
您可以将窗口大小为2的操作视为将数据帧向上移动一行,将其与原始数据帧水平连接,最后重新排序。因此,无需对行进行迭代,就可以这样做:
输出:
这可以概括为任意数据帧和窗口大小:
输出:
相关问题 更多 >
编程相关推荐