在满足条件的索引/位置将数据帧列追加到另一个数据帧

2024-09-27 00:17:11 发布

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

我有一个one_sec_flt数据帧,它有300000多个点,还有一个flask数据帧,它有230个点。两个数据帧都有列HourMinuteSecond。我想将flask数据帧附加到在one_sec_flt数据中获取它的同一时间

烧瓶数据框

      year  month  day  hour  minute  second...  gas1  gas2  gas3
0     2018      4    8    16      27      48...    10    25   191
1     2018      4    8    16      40      20...    45    34   257
...
229   2018      5   12    14      10      05...     3    72   108

一秒flt数据帧

        Year  Month  Day  Hour  Min  Second...  temp  wind
0       2018      4    8    14   30      20...   300    10
1       2018      4    8    14   45      15...   310     8
...
305,212 2018      5   12    14      10   05...   308    24

我有这段代码,但我不知道如何在那个精确的时间戳将一个数据帧附加到另一个数据帧

for i in range(len(flasks)):
    for j in range(len(one_sec_flt)):

        if (flasks.hour.iloc[i] == one_sec_flt.Hour.iloc[j]):
            if (flasks.minute.iloc[i] == one_sec_flt.Min.iloc[j]):
                if (flasks.second.iloc[i] == one_sec_flt.Sec.iloc[j]):
                    print('match')

我的输出目标如下所示:

        Year  Month  Day  Hour  Min  Second...  temp  wind  gas1  gas2  gas3
0       2018      4    8    14   30      20...   300    10   nan   nan   nan
1       2018      4    8    14   45      15...   310     8   nan   nan   nan
2       2018      4    8    15   15      47...   ...   ...   nan   nan   nan
3       2018      4    8    16   27      48...   ...   ...    10    25   191
4       2018      4    8    16   30      11...   ...   ...   nan   nan   nan 
5       2018      4    8    16   40      20...   ...   ...    45    34   257
...      ...     ...  ...  ...  ...      ...     ...   ...   ...   ...   ...
305,212 2018      5   12    14   10      05...   308    24     3    72   108

Tags: 数据flaskifsecnanminonesecond
1条回答
网友
1楼 · 发布于 2024-09-27 00:17:11

如果您可以将两个数据帧串联在一起;一秒钟,然后按时间排序,它可能会达到您想要的效果(至少,如果我正确理解问题陈述的话)

Flasks
Out[13]: 
   year  month  day  hour  minute  second
0  2018      4    8    16      27      48
1  2018      4    8    16      40      20
one_sec
Out[14]: 
   year  month  day  hour  minute  second
0  2018      4    8    14      30      20
1  2018      4    8    14      45      15
df_res = pd.concat([Flasks,one_sec])
df_res
Out[16]: 
   year  month  day  hour  minute  second
0  2018      4    8    16      27      48
1  2018      4    8    16      40      20
0  2018      4    8    14      30      20
1  2018      4    8    14      45      15
df_res.sort_values(by=['year','month','day','hour','minute','second'])
Out[17]: 
   year  month  day  hour  minute  second
0  2018      4    8    14      30      20
1  2018      4    8    14      45      15
0  2018      4    8    16      27      48
1  2018      4    8    16      40      20

相关问题 更多 >

    热门问题