如何合并时间戳略有不同的两个不同的数据帧

2024-06-08 04:45:41 发布

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

我用10秒的记录数据计算了15分钟的移动平均值。现在,我想根据最近的时间戳将来自不同文件的两个timeseries数据(15分钟平均值和15分钟移动平均值)合并到一个新文件中。你知道吗

15分钟移动平均线数据如下。我计算了移动平均数,前几行是NaN:

RecTime NO2_RAW NO2 Ox_RAW  Ox  CO_RAW  CO  SO2_RAW SO2
2019-06-03 00:00:08 NaN NaN NaN NaN NaN NaN NaN NaN
2019-06-03 00:00:18 NaN NaN NaN NaN NaN NaN NaN NaN
2019-06-03 00:00:28 NaN NaN NaN NaN NaN NaN NaN NaN
2019-06-03 00:00:38 NaN NaN NaN NaN NaN NaN NaN NaN

15分钟平均数据如下:

    Site    Species ReadingDateTime   Value Units   Provisional or Ratified
0   CR9       NO2   2019-03-06 00:00:00 8.2 ug m-3  P
1   CR9       NO2   2019-03-06 00:15:00 7.6 ug m-3  P
2   CR9       NO2   2019-03-06 00:30:00 5.9 ug m-3  P
3   CR9       NO2   2019-03-06 00:45:00 5.1 ug m-3  P
4   CR9       NO2   2019-03-06 01:00:00 5.2 ug m-3  P

我想要一张这样的桌子:

ReadingDateTime Value   NO2_Raw NO2
2019-06-03 00:00:00         
2019-06-03 00:15:00         
2019-06-03 00:30:00         
2019-06-03 00:45:00         
2019-06-03 01:00:00 

我试着用最近的时间来匹配这两个数据帧

df3 = pd.merge_asof(df1, df2, left_on = 'RecTime', right_on = 'ReadingDateTime', tolerance=pd.Timedelta('59s'), allow_exact_matches=False)

我得到了一个新的数据帧

    RecTime NO2_RAW NO2 Ox_RAW  Ox  CO_RAW  CO  SO2_RAW SO2 Site    Species ReadingDateTime Value   Units   Provisional or Ratified
0   2019-06-03 00:14:58 1.271111    21.557111   65.188889   170.011111  152.944444  294.478000  -124.600000 -50.129444  NaN NaN NaT NaN NaN NaN
1   2019-06-03 00:15:08 1.294444    21.601778   65.161111   169.955667  152.844444  294.361556  -124.595556 -50.117556  NaN NaN NaT NaN NaN NaN
2   2019-06-03 00:15:18 1.318889    21.648556   65.104444   169.842556  152.750000  294.251556  -124.593333 -50.111667  NaN NaN NaT NaN NaN NaN

但df2的值变为NaN。有人能帮忙吗?你知道吗


Tags: 数据rawvalue时间nannat平均值ox
1条回答
网友
1楼 · 发布于 2024-06-08 04:45:41

假设分钟数是正确的,您可以删除秒数,然后就可以合并了。你知道吗

df.RecTime.map(lambda x: x.replace(second=0))。你知道吗

您可以创建一个新列或替换现有列进行合并。你知道吗

相关问题 更多 >

    热门问题