将数据行从一个数据帧附加到另一个数据帧中

2024-05-13 04:20:27 发布

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

我是全新的熊猫和两个数据帧工作。我的目标是将df\uls(下面)的非日期值按列附加到df\u1中最接近的日期。是使用传统for循环实现这一点的唯一方法,或者是它们的一些更有效的内置方法/函数。我在google上搜索了很多次,但没有找到任何运气,只找到了将数据帧块附加到其他数据帧的方法。我还没有找到一种方法来搜索一个数据帧,并在最近的日期在另一个数据帧中追加一行。见下例:

第一个数据帧的示例(称之为df\u 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   

第二个数据帧的例子(我们称之为dfu 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,但熊猫是一个新的我。你知道吗

谢谢


Tags: 数据sample方法示例目标dfrawetc