我想按id_
, Code
, Timestamp
(因为时间顺序很重要)对值进行排序,然后d1
使用id_
and对值进行分组,然后对每个组、列和onlyCode
使用前向填充,同时保持其他列不变,并返回完整的表。ffill
NaN
V1
V2
d1
:
Type_x id_ Timestamp V1 Code Type_y V2
0 abcd 39-38-30-34 2012-09-20 23:46:05.870 35.5 2 NaN 0
1 abcd 39-38-30-34 2012-09-20 23:46:23.870 44.5 0 NaN 1
2 abcd 39-38-30-34 2012-09-20 23:48:07.870 43.5 0 NaN 1
3 abcd 39-38-30-34 2012-09-20 23:49:48.870 42.5 0 NaN NaN
4 abcd 39-38-30-34 2012-09-20 23:50:44.870 34.5 2 NaN NaN
试过:
d2 = d1.sort_values(by = ['id_', 'Code', 'Timestamp']).groupby(['id_', 'Code'])['V1', 'V2'].ffill()
仅返回两列:
V1 V2
69659 21.5 NaN
300886 21.5 1.0
300887 21.5 0.0
70086 23.0 0.0
300955 23.0 1.0
我应该如何正确地做到这一点?