【发布时间】:2019-09-06 20:09:08
【问题描述】:
问题:
我有一个包含测量值的数据框
foo和一个common_step列,其中包含指示每行测量时间的整数。我有第二个数据框,它还包含一个
common_step列和一个bar_step列。它在两个整数步长之间进行转换。我想将
bar_step作为一列添加到foo。但是,两个数据框的common_step值没有对齐。-
因此,对于
foo中的每一行,我想在bar中找到最接近global_step的行并将其bar_step添加到foo行。 我找到了一种方法来做到这一点。但是,解决方案非常缓慢。这是因为对于
foo中的每一行,它都会搜索bar中的所有行以找到与global_step最接近的行。
foo.sort_values('common_step', inplace=True)
bar.sort_values('common_step', inplace=True)
def find_nearest(foo_row):
index = abs(bar.common_step - foo_row.common_step).idxmin()
return bar.loc[index].bar_step
foo['bar_step'] = scores.apply(find_nearest, axis=1)
问题:
- 如何将最接近的匹配
bar_step添加到具有二次运行时间的foo数据表? - 此外,最好有一个标志来选择最近但较小
global_step的行。
【问题讨论】: