我有 2 列中缺少值的数据集,我想用上一个日期的前一行中的值填充它。因此,根据预定义和参考(在先前填充的行中预定义)的最后日期,存在Weight并且Height应该填充来自另一行的值,例如:CategoryWorkerID
数据示例:
Ind Date WorkerID Category Weight Height Kind_eat
1 31/12/17 E145-46 cat 2.35 0.6 1
2 01/09/18 M147-50 cat 4.78 0.8 2
3 27/05/18 K178-56 dog 7.03 0.75 3
4 09/02/18 T106-20 mouse NaN NaN 1
5 18/03/19 M147-50 cat NaN NaN 2
6 25/03/19 K178-56 dog NaN NaN 3
7 04/01/17 T106-20 mouse 0.75 0.15 4
8 01/04/19 T156-10 dog 6.99 0.13 4
因此, NaNofWeight和Height列应根据Weight,Height列参考NaN上一个可用日期的非值填充,该日期在 中的实际值之前Date。
例如,
5 18/03/19 M147-50 cat NaN NaN 2
应该由Weight和Height来自line2:
5 18/03/19 M147-50 cat 4.78 0.8 2
我试图通过group-by和fillna方法来做到这一点group,但它没有填满任何东西。
df.groupby(['Date','WorkerID'], as_index = False).apply(lambda group: group.ffill())
我也尝试使用: df.groupby(['Date','WorkedID']).ffill().reindex(df.columns, axis=1)
实际结果是: - 没有正确填充 NaN
Ind Date WorkerID Category Weight Height Kind_eat
1 31/12/17 E145-46 cat 2.35 0.6 1
2 01/09/18 M147-50 cat 4.78 0.8 2
3 27/05/18 K178-56 dog 7.03 0.75 3
4 09/02/18 T106-20 mouse NaN NaN 1
5 18/03/19 M147-50 cat NaN NaN 2
6 25/03/19 K178-56 dog NaN NaN 3
7 04/01/17 T106-20 mouse 0.75 0.15 4
8 01/04/19 T156-10 dog 6.99 0.13 4
我很感激任何想法。谢谢)
狐的传说
相关分类