我有一个日期列表:
xl_file
Day
Date
2011-01-26 Wednesday
2011-03-02 Wednesday
2011-04-12 Tuesday
2011-04-14 Thursday
2011-04-22 Friday
...
2020-05-25 Monday
2020-10-02 Friday
2020-11-16 Monday
2020-11-30 Monday
2020-12-25 Friday
[144 rows x 1 columns]
在上面数据框中列出的日期中,这些是我需要更改的日期:
list_of_dates
Empty DataFrame
Columns: []
Index: [2018-01-25 00:00:00, 2018-02-22 00:00:00, 2018-04-26 00:00:00, 2018-05-31 00:00:00, 2018-06-28 00:00:00, 2018-07-26 00:00:00, 2018-08-30 00:00:00, 2018-09-27 00:00:00, 2018-10-25 00:00:00, 2018-11-29 00:00:00, 2018-12-27 00:00:00, 2019-01-31 00:00:00, 2019-02-28 00:00:00, 2019-03-28 00:00:00, 2019-04-25 00:00:00, 2019-05-30 00:00:00, 2019-06-27 00:00:00, 2019-07-25 00:00:00, 2019-08-29 00:00:00, 2019-09-26 00:00:00, 2019-10-31 00:00:00, 2019-11-28 00:00:00, 2019-12-26 00:00:00, 2020-01-30 00:00:00, 2020-02-27 00:00:00, 2020-03-26 00:00:00, 2020-04-30 00:00:00, 2020-05-28 00:00:00, 2020-06-25 00:00:00]
我想做的是,日期出现在xl_file的数据框list_of_dates中的任何地方,Date
更改为:
list_of_dates.index + BDay()
但是,该行的内容保持不变。
例如,如果xl_file
中的日期是
2020-06-25 Thursday
该日期也位于list_of_dates
中,因此应该发生的是将该日期更改为下一个BDay()
,即:
2020-06-26 Thursday
不更改其余行中的条目。我该怎么办?
答案 0 :(得分:2)
您可以执行以下操作:
xl_file["Date"] = xl_file["Date"].apply(lambda x: x + BDay() if x in list_of_dates.index else x)
编辑:刚注意到这是您要调整的索引,因此您可以执行以下操作:
xl_file.index = xl_file.index.map(lambda x: x + BDay() if x in list_of_dates.index else x)