如何找到两个熊猫列之间的最佳匹配?

火箭袜22

假设我有两个数据帧df1和df2,如下所示:

df1 = pd.DataFrame({'Timestamp_A': [0.6, 1.1, 1.6, 2.1, 2.6, 3.1, 3.6, 4.1, 4.6, 5.1, 5.6, 6.1, 6.6, 7.1]})
df2 = pd.DataFrame({'Timestamp_B': [2.2, 2.7, 3.2, 3.7, 5.2, 5.7]})


Timestamp_A
0   0.6
1   1.1
2   1.6
3   2.1
4   2.6
5   3.1
6   3.6
7   4.1
8   4.6
9   5.1
10  5.6
11  6.1
12  6.6
13  7.1

Timestamp_B
0   2.2
1   2.7
2   3.2
3   3.7
4   5.2
5   5.7

每个数据帧都是不同传感器读数的输出,并且每个数据帧都以相同的频率传输。我想做的是将这两个数据帧对齐在一起,以使B中的每个时间戳与A中最接近其值的时间戳对齐。对于Timestamp_A中所有与Timestamp_B不匹配的值,请将其替换为np.nan。有人对采取这样的最佳方法有任何建议吗?这是所需的输出:

    Timestamp_A     Timestamp_B
0   0.6     NaN
1   1.1     NaN
2   1.6     NaN
3   2.1     2.2
4   2.6     2.7
5   3.1     3.2
6   3.6     NaN
7   4.1     NaN
8   4.6     NaN
9   5.1     5.2
10  5.6     5.7
11  6.1     NaN
12  6.6     NaN
13  7.1     NaN
绉山羊

您可能需要merge_asof的一些应用程序,如下所示:

import pandas as pd

df1 = pd.DataFrame({'Timestamp_A': [0.6, 1.1, 1.6, 2.1, 2.6, 3.1, 3.6, 4.1, 4.6, 5.1, 5.6, 6.1, 6.6, 7.1]})
df2 = pd.DataFrame({'Timestamp_B': [2.2, 2.7, 3.2, 3.7, 5.2, 5.7]})

df3 = pd.merge_asof(df1, df2, left_on='Timestamp_A', right_on='Timestamp_B',
                    tolerance=0.5, direction='nearest')

print(df3)

输出如下:

    Timestamp_A  Timestamp_B
0           0.6          NaN
1           1.1          NaN
2           1.6          NaN
3           2.1          2.2
4           2.6          2.7
5           3.1          3.2
6           3.6          3.7
7           4.1          3.7
8           4.6          NaN
9           5.1          5.2
10          5.6          5.7
11          6.1          5.7
12          6.6          NaN
13          7.1          NaN

公差将在数字上定义“不匹配”的含义,由您决定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何找到两个熊猫数据框之间的交集

如何比较两个不同列之间的熊猫值?

如何匹配两个文件之间的多列?

Oracle-查找两个表之间的最佳匹配

使用 Python 查找两个团队之间的最佳匹配

在熊猫中找到两个系列之间的交点

查找熊猫数据框中两个相关列之间的不匹配

如何找到熊猫中两个约会时间之间的时差?

如何在熊猫数据框中找到两个索引之间的最大值

如何找到两个熊猫数据框之间的设置差异

如何找到大熊猫中两个弦之间的相关性

如何根据错误值找到两个熊猫系列之间的交集

如何在熊猫数据框中找到两个时间戳之间的差异

两个熊猫系列之间的匹配ID

在两个集合之间找到完全匹配的等效数字

如何在React中找到两个嵌套数组之间的不匹配元素

java-如何找到两个列表之间的匹配对象?

如何在mongodb的两个集合之间找到匹配元素?

如何在 Python 中找到两个 2D 列表之间的匹配项?

熊猫如何添加计数器以匹配两个数据框列之间的行

查找两个不同数据框的列之间的部分匹配项,并在找到匹配项时分配值

如何找到两个随机参数的最佳组合

熊猫:如何对两个特定列之间的(动态)列求和?

列匹配时从两个熊猫DataFrame过滤数据

查找两个熊猫列之间的缺失词

编辑两个熊猫列之间的距离

提取两个值之间的熊猫列

提取熊猫列中两个标记之间的文本

如何计算不同熊猫列中两个日期之间的年数