根据日期将数据行从一个数据框追加到另一个数据帧

时间:2014-12-08 02:03:02

标签: python pandas

我是熊猫的新手,并且使用两个数据帧。我的目标是将df_ls(下面)的非日期值逐列地附加到df_1中最近的相应日期。使用传统的for循环是唯一的方法,或者是一些更有效的内置方法/功能。我已经广泛搜索了这个,没有任何运气,只找到了将数据框块附加到其他数据帧的方法。我还没有找到一种方法来搜索数据框,并在最近的相应日期在另一个数据框中追加一行。见下面的例子:

第一个数据框示例(我们称之为 df_ls ):

       DATE          ALBEDO_SUR B13_RATIO  B23_RATIO B1_RAW    B2_RAW  
0      1999-07-04    0.070771   1.606958   1.292280  0.128069  0.103018   
1      1999-07-20    0.030795   2.326290   1.728147  0.099020  0.073595   
2      1999-08-21    0.022819   2.492871   1.762536  0.096888  0.068502   
3      1999-09-06    0.014613   2.792271   1.894225  0.090590  0.061445   
4      1999-10-08    0.004978   2.781847   1.790768  0.089291  0.057521   
5      1999-10-24    0.003144   2.818474   1.805257  0.090623  0.058054   
6      1999-11-09    0.000859   3.146100   1.993941  0.092787  0.058823   
7      1999-12-11    0.000912   2.913604   1.656642  0.097239  0.055357   
8      1999-12-27    0.000877   2.974692   1.799949  0.098282  0.059427   
9      2000-01-28    0.000758   3.092533   1.782112  0.095153  0.054809   
10     2000-03-16    0.002933   2.969185   1.727465  0.083059  0.048322   
11     2000-04-01    0.016814   2.366437   1.514110  0.089720  0.057398   
12     2000-05-03    0.047370   1.847763   1.401930  0.109767  0.083290   
13     2000-05-19    0.089432   1.402798   1.178798  0.137965  0.115936   
14     2000-06-04    0.056340   1.807828   1.422489  0.118601  0.093328   

第二个数据框示例(我们称之为 df_1

    Sample Date  Value 
0    2000-05-09   1.68  
1    2000-05-09   1.68  
2    2000-05-18   1.75  
3    2000-05-18   1.75  
4    2000-05-31   1.40 
5    2000-05-31   1.40 
6    2000-06-13   1.07
7    2000-06-13   1.07
8    2000-06-27   1.49
9    2000-06-27   1.49
10   2000-07-11   2.29
11   2000-07-11   2.29

最后,我的目标是拥有这样的东西(注意附加值是最接近采样日期的值,即使它们不匹配完美):

    Sample Date  Value  ALBEDO_SUR B13_RATIO  B23_RATIO B1_RAW    B2_RAW  
0    2000-05-09   1.68  0.047370   1.847763   1.401930  0.109767  0.083290
1    2000-05-09   1.68  0.047370   1.847763   1.401930  0.109767  0.083290
2    2000-05-18   1.75  0.089432   1.402798   1.178798  0.137965  0.115936   
3    2000-05-18   1.75  0.089432   1.402798   1.178798  0.137965  0.115936   
4    2000-05-31   1.40  0.056340   1.807828   1.422489  0.118601  0.093328   
5    2000-05-31   1.40  0.056340   1.807828   1.422489  0.118601  0.093328   
6    2000-06-13   1.07  ETC....    ETC....    ETC ...
7    2000-06-13   1.07
8    2000-06-27   1.49
9    2000-06-27   1.49
10   2000-07-11   2.29
11   2000-07-11   2.29

感谢您的帮助。正如我所说,我是新手,我在MATLAB中有过这方面的经验,但PANDAS对我来说是个新手。

由于

0 个答案:

没有答案