合并时间戳大于或等于的数据帧

2024-06-28 18:44:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧:

timestamp1 = ['2018-10-01 00:01:49.800000000', '2018-10-01 00:01:52.900000000', '2018-10-01 00:04:18.857741600'] 

df1 = pd.DataFrame(timestamp1, columns =['timestamp']) 

timestamp2 = [['2018-10-01 00:01:50.230 ', 'John'], ['2018-10-01 00:01:52.560', 'Jill'], ['2018-10-01 00:04:19.100', 'Jack']]

df2 = pd.DataFrame(timestamp2, columns =['timestamp', 'name']) 

我想根据时间戳(t)合并这两个帧,其中t来自df1(t)>;=df2(t)。我想要的结果是:

         timestamp_df1,               timestamp_df2,                name
2018-10-01 00:01:49.800000000      2018-10-01 00:01:50.230          John
2018-10-01 00:01:52.900000000      2018-10-01 00:01:52.56           Jill
2018-10-01 00:04:18.857741600      2018-10-01 00:04:19.100          Jack

时间戳是数据帧中唯一可以合并的公共内容。我已经研究了条件合并,但它似乎不是正确的路线?任何帮助或建议都是有用的


Tags: columns数据namegtdataframe时间johntimestamp
1条回答
网友
1楼 · 发布于 2024-06-28 18:44:19

看起来你需要^{}在这里。请注意,在第二种情况下,条件不成立。你也可以像我在这里做的那样添加一个公差:

pd.merge_asof(df1, df2, 
              on='timestamp', 
              direction='nearest', 
              tolerance=pd.Timedelta('1min'))

     timestamp  name
0 2018-10-01 00:01:49.800000000  John
1 2018-10-01 00:01:52.900000000  Jill
2 2018-10-01 00:04:18.857741600  Jack

相关问题 更多 >