首页 > 解决方案 > 如何按 ID 分组并按 datetimestamp 排序并在 pandas 中创建具有新旧值的新行的表

问题描述

我正在尝试在熊猫中执行以下操作

我有三列,ID、日期时间和值。

ID,          DATE_TIME,VALUE

FLT09045412, 2019-01-02 12:03:23, 6

FLT09045412, 2019-01-30 14:38:47, 7

我想用这个创建一个新表

ID,            DATE_TIME,             OLD_VALUE,   NEW_VALUE  

FLT09045412,   2019-01-02 12:03:23,   NAN,         6

FLT09045412,   2019-01-30 14:38:47,   6,           7

每个逗号代表一个新列

谢谢

标签: pythonpandas

解决方案


国际大学联合会,

df['NEW_VALUE'] = df['VALUE']
df = df.sort_values('DATE_TIME')

df['OLD_VALUE'] = df.groupby('ID')['VALUE'].shift()

输出:

            ID            DATE_TIME  VALUE  NEW_VALUE  OLD_VALUE
0  FLT09045412  2019-01-02 12:03:23      6          6        NaN
1  FLT09045412  2019-01-30 14:38:47      7          7        6.0

推荐阅读