合并两个Pandas数据帧,在一个时间列上重新采样,进行插值

ol

这是我关于stackoverflow的第一个问题。放轻松我吧!

我有两个数据集,它们是由具有不同采样率的不同采集系统同时采集的。一个非常规律​​,而另一个则不是。我想创建一个包含两个数据集的单个数据框,并使用规则间隔的时间戳(以秒为单位)作为两者的参考。不规则采样的数据应插在规则间隔的时间戳上。

这是一些玩具数据,说明我正在尝试做的事情:

import pandas as pd
import numpy as np

# evenly spaced times
t1 = np.array([0,0.5,1.0,1.5,2.0])
y1 = t1

# unevenly spaced times
t2 = np.array([0,0.34,1.01,1.4,1.6,1.7,2.01])
y2 = 3*t2

df1 = pd.DataFrame(data={'y1':y1,'t':t1})
df2 = pd.DataFrame(data={'y2':y2,'t':t2})

df1和df2如下所示:

df1:
    t   y1
0  0.0  0.0
1  0.5  0.5
2  1.0  1.0
3  1.5  1.5
4  2.0  2.0

df2:
    t    y2
0  0.00  0.00
1  0.34  1.02
2  1.01  3.03
3  1.40  4.20
4  1.60  4.80
5  1.70  5.10
6  2.01  6.03

我正在尝试合并df1和df2,在df1.t上插值y2。理想的结果是:

df_combined:
     t   y1   y2
0  0.0  0.0  0.0
1  0.5  0.5  1.5
2  1.0  1.0  3.0
3  1.5  1.5  4.5
4  2.0  2.0  6.0

我一直在阅读pandas.resample的文档,以及搜索以前的stackoverflow问题,但是还没有找到解决我特定问题的方法。有任何想法吗?似乎应该很容易。

更新:我想出了一个可能的解决方案:首先插值第二个系列,然后附加到第一个数据帧:

from scipy.interpolate import interp1d
f2 = interp1d(t2,y2,bounds_error=False)
df1['y2'] = f2(df1.t)

这使:

df1:
    t   y1   y2
0  0.0  0.0  0.0
1  0.5  0.5  1.5
2  1.0  1.0  3.0
3  1.5  1.5  4.5
4  2.0  2.0  6.0

可以,但是如果有更好的方法,我仍然对其他解决方案持开放态度。

K3 --- RNC

如果从Series构造单个DataFrame,则使用时间值作为索引,如下所示:

>>> t1 = np.array([0, 0.5, 1.0, 1.5, 2.0])
>>> y1 = pd.Series(t1, index=t1)

>>> t2 = np.array([0, 0.34, 1.01, 1.4, 1.6, 1.7, 2.01])
>>> y2 = pd.Series(3*t2, index=t2)

>>> df = pd.DataFrame({'y1': y1, 'y2': y2})
>>> df
       y1    y2
0.00  0.0  0.00
0.34  NaN  1.02
0.50  0.5   NaN
1.00  1.0   NaN
1.01  NaN  3.03
1.40  NaN  4.20
1.50  1.5   NaN
1.60  NaN  4.80
1.70  NaN  5.10
2.00  2.0   NaN
2.01  NaN  6.03

您可以简单地对其进行插值,然后仅选择y1定义的部分

>>> df.interpolate('index').reindex(y1)
      y1   y2
0.0  0.0  0.0
0.5  0.5  1.5
1.0  1.0  3.0
1.5  1.5  4.5
2.0  2.0  6.0

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否有一个函数可以获取熊猫数据帧时间序列上两个值之间的差异?

来自分类Dev

在熊猫中将一个时间序列插值到另一个

来自分类Dev

通过线性插值组合两个不同的时间戳数据帧

来自分类Dev

跨列通过至少一个合并ID合并两个R数据帧

来自分类Dev

在一个数据帧中对多个时间序列进行上采样

来自分类Dev

Python Pandas合并两个数据帧,并将一个数据帧的一行映射到另一数据帧的所有行

来自分类Dev

在pyspark中的两个时间戳之间创建一个时间戳数组

来自分类Dev

从两个日期时间之间的时差返回另一个时间

来自分类Dev

通过重复行来转换数据帧并创建一个对两个变量的值进行计数的变量

来自分类Dev

通过重复行来转换数据帧并创建一个对两个变量的值进行计数的变量

来自分类Dev

在python熊猫中,如何合并两个数据帧,同时使用另一个的权重将值散布在一个数据中?

来自分类Dev

如何合并两个不同长度的数据帧,一个是另一个的子集

来自分类Dev

使用 Pandas 比较两个数据帧以返回一个新的数据帧 - Python

来自分类Dev

按某一列将数据帧压缩为包含第一个和最后一个时间戳以及值均值的行

来自分类Dev

R:当两个条件中的任何一个匹配时,合并两个数据帧

来自分类Dev

在R中,如何合并两个数据帧,其中一个中的列名等于另一个中的行值?

来自分类Dev

一次合并两个以上的数据帧

来自分类Dev

rmongodb-将两个数据帧合并到一个文档集中

来自分类Dev

将两个数据帧合并为一个,同时保留原始行号

来自分类Dev

rmongodb-将两个数据帧合并到一个文档集中

来自分类Dev

合并熊猫数据框,其中一个值介于两个值之间

来自分类Dev

将时间序列数据映射/采样到另一个时间序列 db2

来自分类Dev

将多行合并为一个时间间隔

来自分类Dev

合并两个在一侧重复“on”值的数据帧

来自分类Dev

如何根据第二个中的可能值范围合并两个数据帧,但保留第一个中的值?

来自分类Dev

在具有不同实例数的特定列上合并两个不同长度的数据帧

来自分类Dev

在一个值上对R中的数据帧进行重复数据删除,选择其他列上的任何值

来自分类Dev

如何将两个数据帧中的行合并为 R 中的一个数据帧?

来自分类Dev

使用实例化视图,可以从“一个时间戳记”表生成“两个时间戳记”视图吗?

Related 相关文章

  1. 1

    是否有一个函数可以获取熊猫数据帧时间序列上两个值之间的差异?

  2. 2

    在熊猫中将一个时间序列插值到另一个

  3. 3

    通过线性插值组合两个不同的时间戳数据帧

  4. 4

    跨列通过至少一个合并ID合并两个R数据帧

  5. 5

    在一个数据帧中对多个时间序列进行上采样

  6. 6

    Python Pandas合并两个数据帧,并将一个数据帧的一行映射到另一数据帧的所有行

  7. 7

    在pyspark中的两个时间戳之间创建一个时间戳数组

  8. 8

    从两个日期时间之间的时差返回另一个时间

  9. 9

    通过重复行来转换数据帧并创建一个对两个变量的值进行计数的变量

  10. 10

    通过重复行来转换数据帧并创建一个对两个变量的值进行计数的变量

  11. 11

    在python熊猫中,如何合并两个数据帧,同时使用另一个的权重将值散布在一个数据中?

  12. 12

    如何合并两个不同长度的数据帧,一个是另一个的子集

  13. 13

    使用 Pandas 比较两个数据帧以返回一个新的数据帧 - Python

  14. 14

    按某一列将数据帧压缩为包含第一个和最后一个时间戳以及值均值的行

  15. 15

    R:当两个条件中的任何一个匹配时,合并两个数据帧

  16. 16

    在R中,如何合并两个数据帧,其中一个中的列名等于另一个中的行值?

  17. 17

    一次合并两个以上的数据帧

  18. 18

    rmongodb-将两个数据帧合并到一个文档集中

  19. 19

    将两个数据帧合并为一个,同时保留原始行号

  20. 20

    rmongodb-将两个数据帧合并到一个文档集中

  21. 21

    合并熊猫数据框,其中一个值介于两个值之间

  22. 22

    将时间序列数据映射/采样到另一个时间序列 db2

  23. 23

    将多行合并为一个时间间隔

  24. 24

    合并两个在一侧重复“on”值的数据帧

  25. 25

    如何根据第二个中的可能值范围合并两个数据帧,但保留第一个中的值?

  26. 26

    在具有不同实例数的特定列上合并两个不同长度的数据帧

  27. 27

    在一个值上对R中的数据帧进行重复数据删除,选择其他列上的任何值

  28. 28

    如何将两个数据帧中的行合并为 R 中的一个数据帧?

  29. 29

    使用实例化视图,可以从“一个时间戳记”表生成“两个时间戳记”视图吗?

热门标签

归档