合并30天内发生的熊猫数据框中的行

时间:2018-12-06 22:06:07

标签: python pandas dataframe pandas-groupby

我有以下熊猫数据框:

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]})

我要实现的目标如下:

  1. 具有相同id且日期彼此之间最长不超过30天的行需要合并。
  2. 合并的方式将是采用日期较新的行中的值以及日期。
  3. 如果在较新的行中缺少值,则应从日期较新的行中获取值。
  4. 对于可以合并的每一行,请始终检查是否可以将其与具有最近日期的行合并。如果有的话,将其与那一个合并。
  5. 最大合并两行。如果两行合并,即使该行也在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]})

免责声明:这是我真正想要实现的简化版本,因此我可能会有一些后续问题。

0 个答案:

没有答案