Хорошо, я попытался выяснить это, но я не смог сделать это, и я не смог найти другие вопросы, подобные этому ...
Используя pandas и фрейм данных, мне нужно сопоставлять данные из более ранней части информационного кадра и помещать их в более позднюю часть информационного кадра на основе соответствующего значения. Данные выглядят так:
nc Date oldval lor
508 508 2019-07-08 296.820007 500
509 509 2019-07-17 297.73999 502
510 510 2019-07-19 297.170013 502
511 511 2019-07-25 300 504
512 512 2019-08-05 283.820007 505
513 513 2019-08-12 288.070007 506
514 514 2019-08-14 283.899994 506
515 515 2019-08-23 284.850006 507
516 516 2019-09-03 290.73999 508
517 517 2019-09-16 300.160004 510
518 518 2019-09-24 295.869995 511
519 519 2019-09-27 295.399994 511
520 520 2019-10-02 288.059998 512
521 521 2019-10-08 288.529999 513
522 522 2019-10-18 297.970001 514
523 523 2019-11-21 310.269989 518
524 524 2019-12-03 309.549988 520
Что мне нужно сделать, это посмотреть на столбец 'lor', сравнить его со всеми предыдущими строками в столбце 'n c' и, если 'n c 'имеет соответствующее значение, затем поместите дату в новый столбец «xDate», а «oldval» - в новый столбец «xval» в той же строке, что и «lor». Числа в столбце 'n c' будут уникальными и будут увеличиваться по значению, в то время как числа в столбце 'lor' могут или не могут дублироваться.
Окончательные данные должны выглядеть следующим образом:
nc Date oldval lor xdate xval
508 508 2019-07-08 296.820007 500 np.nan np.nan
509 509 2019-07-17 297.73999 502 np.nan np.nan
510 510 2019-07-19 297.170013 502 np.nan np.nan
511 511 2019-07-25 300 504 np.nan np.nan
512 512 2019-08-05 283.820007 505 np.nan np.nan
513 513 2019-08-12 288.070007 506 np.nan np.nan
514 514 2019-08-14 283.899994 506 np.nan np.nan
515 515 2019-08-23 284.850006 507 np.nan np.nan
516 516 2019-09-03 290.73999 508 2019-07-08 296.820007
517 517 2019-09-16 300.160004 510 2019-07-19 297.170013
518 518 2019-09-24 295.869995 511 2019-07-25 300
519 519 2019-09-27 295.399994 511 2019-07-25 300
520 520 2019-10-02 288.059998 512 2019-08-05 283.820007
521 521 2019-10-08 288.529999 513 2019-08-12 288.070007
522 522 2019-10-18 297.970001 514 2019-08-14 283.899994
523 523 2019-11-21 310.269989 518 2019-09-24 295.869995
524 524 2019-12-03 309.549988 520 2019-10-02 288.059998