合并日期时间和范围上的数据框

意大利

合并2个数据框。

我有一个数据帧A,其值在非恒定时间戳中:

creation_time   value_A
2020-09-22 00:00:35 83.0
2020-09-22 00:00:43 83.0
2020-09-22 00:02:20 82.0
2020-09-22 00:03:09 77.0
2020-09-22 00:03:04 77.0
2020-09-22 00:03:44 77.0
2020-09-22 00:07:10 71.0
...
2020-10-23 11:42:31 136.0
2020-10-23 11:42:32 136.0
2020-10-23 11:42:35 136.0
2020-10-29 11:42:31 136.0
2020-10-29 11:42:32 136.0
2020-10-29 11:42:35 136.0

第一列是范围。例如,从2020-09-22的0到75,value_B应该为60。

value_A_range  creation_time value_B
0   2020-09-22 00:00:00.000000  60
75  2020-09-22 00:00:00.000000  65
124 2020-09-22 00:00:00.000000  300
143 2020-09-22 00:00:00.000000  360
0   2020-10-16 12:23:25.000000  60
75  2020-10-16 12:23:25.000000  400
124 2020-10-16 12:23:25.000000  400
143 2020-10-16 12:23:25.000000  450
0   2020-10-28 15:53:31.000000  10
82  2020-10-28 15:53:31.000000  30
114 2020-10-28 15:53:31.000000  40
129 2020-10-28 15:53:31.000000  60
139 2020-10-28 15:53:31.000000  110

预期结果:获取数据帧A中每个时间戳的value_B。在可用时间戳上匹配value_A的范围。

creation_time   value_A  value_B
2020-09-22 00:00:35 83.0 65   
2020-09-22 00:00:43 83.0 65
2020-09-22 00:02:20 82.0 65
2020-09-22 00:03:09 60.0 60
2020-09-22 00:03:04 60.0 60
2020-09-22 00:03:44 60.0 60
2020-09-22 00:07:10 129.0 300
...
2020-10-23 11:42:31 136.0 400
2020-10-23 11:42:32 156.0 450
2020-10-23 11:42:35 136.0 400
2020-10-29 11:42:31 85.0 30
2020-10-29 11:42:32 120.0 40
2020-10-29 11:42:35 160.0 110

我正在尝试的资源:rangemerge_asof

弗朗索瓦·B。

我将两个数据框放在两个文件A.csv和B.csv中

import pandas as pd

df_a = pd.read_csv("A.csv", parse_dates=["creation_time"])
df_b = pd.read_csv("B.csv", parse_dates=["creation_time"])

加载数据后,我用B计算时间间隔的开始和结束

df_b["A_end"] = df_b["creation_time"] + pd.to_timedelta(df_b["value_A_range"], unit="sec")
df_b["A_start"] = df_b["A_end"].apply(lambda cell: df_b[df_b["A_end"]<cell]["A_end"].max())

在B中搜索value_B之前(应该只有一个值,因此使用min,max或mean都没有关系)

df_a["value_B"] = df_a["creation_time"].apply(
    lambda cell: df_b[(df_b["A_start"]<cell) & (df_b["A_end"]>=cell)]["value_B"].mean()
)

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在R中的日期范围上合并两个数据框

通过日期时间和日期列合并熊猫数据框

根据日期范围和标识符合并数据框

R合并包含日期和时间的数据框

在Spark数据框中合并日期范围

如何将两个数据框与重叠日期时间范围内的列合并

按3列和日期范围合并2个数据框

根据日期范围和值匹配合并熊猫数据框

如何在日期时间索引和两列上合并熊猫数据框

Pandas 在日期时间索引和另一列上合并数据框

如何在python pandas中按日期和时间合并2个数据框?

熊猫从特定日期和时间范围读取csv数据框行

根据日期范围合并多个数据框

根据R中的日期范围合并数据框

Elasticsearch在日期范围上的聚合

根据最近的日期时间合并两个数据框

使用月份日期时间合并多个数据框

根据日期列和日期范围填充熊猫数据框

按日期范围和分类变量合并数据集

如何获取由开始和结束日期时间的数组定义的熊猫数据框范围的平均值?

为什么日期范围上的Linq在合并查询中返回null,在单独查询中运行良好

按ID和日期合并两个数据框

基于索引和日期合并熊猫数据框

根据日期/时间范围和匹配的 id 过滤数据

根据ID和日期范围过滤数据框

熊猫数据框Groupby和检索日期范围

按ID和重叠的日期范围加入数据框

将数据库中的日期和时间范围与用户输入的日期和时间进行比较

合并DateTimeOffset的日期和时间