我有以下熊猫数据框:
df_raw = pd.DataFrame({"id": [1,1,1,2,2], "date": [pd.Timestamp(2002,1,1), pd.Timestamp(2002,1,28), pd.Timestamp(2002,2,1), pd.Timestamp(2003,5,5),pd.Timestamp(2003,5,28)],"value_1": [10,20,30,40,50], "value_2": [60,70,np.nan,np.nan,100]})
-
需要合并具有相同id且彼此之间的日期最长为30天的行。
-
合并将以这样的方式进行:从日期较近的行中获取的值将与日期一起被获取。
-
如果在最近的行中缺少值,则应从日期较短的行中获取值。
-
-
最多合并两行。如果合并了两行,请尝试将它们与下一行合并,即使该行也在30天的范围内。
因此,得到的数据应该是:
df_processed = pd.DataFrame({"id": [1,1,2], "date": [pd.Timestamp(2002,1,1), pd.Timestamp(2002,2,1), pd.Timestamp(2003,5,28)], "value_1": [10, 30,50], "value_2": [60, 70,100]})
免责声明:这是我真正想要达到的目标的简化版本,所以我可能有一些后续问题。