【发布时间】:2017-08-26 05:57:21
【问题描述】:
我有一些按主题 ID 和日期索引的实验数据。我想将数据合并在一起,但受试者可能会在不同的日子进行实验。这是我的意思的一个例子。下面显示的是两个不同实验的结果
SubjectID Date ScoreA
1 2016-09-20 10
1 2016-09-21 12
1 2016-12-01 11
SubjectID Date ScoreB
1 2016-09-20 1
1 2016-09-24 5
1 2016-11-28 3
1 2016-12-11 9
我想将这些行加入到最接近的可用日期。所以理想情况下,我想要的输出是
SubjectID Date1 Date2 ScoreA ScoreB
1 2016-09-20 2016-09-20 10 1
1 2016-09-21 2016-09-24 12 5
1 2016-12-01 2016-11-28 11 3
注意“最接近的日期”是绝对值最接近的。我怎样才能实现这样的目标?
【问题讨论】:
-
如果有两个相同接近的 ScoreB 日期与一个 ScoreA 日期,期望的结果是什么?例如ScoreA 日期为 9/24,ScoreB 日期为 9/22 和 9/26?还是保证永远不会发生。
-
@B.Shieh 不能保证。在这种情况下,我希望更早的日期。
-
在您的示例中,如果 2016-09-20 更接近 2016-09-21,为什么 Date1=2016-09-21 与 Date2=2016-09-24 相关联?
-
@foglerit 哦,很好,这只是我的疏忽。
-
我没用过,不过你可以看看pandas.merge_asof。也许尝试合并日期和 groupby SubjectID? pandas.pydata.org/pandas-docs/version/0.19.0/generated/…