Stack Overflow на русском Asked by collob on January 5, 2021
У меня есть датафрейм, в котором имеются интервалы дат
start end
0 2020-02-14 2020-02-16
1 2020-03-08 2020-03-10
2 2020-03-17 2020-03-19
3 2020-04-12 2020-04-19
4 2020-05-01 2020-05-03
Мне нужно создать список дат, которые находятся в интервале между start и end в каждой строке
Например, для первых двух строк это будет : 2020-02-14, 2020-02-15, 2020-02-16, 2020-03-08, 2020-03-09, 2020-03-10
Я пробовал решить это через цикл, но он не заработал
list_of_dates = []
for i in range( len(df) ):
start = df['start'][i]
end = df['end'][i]
new_date = pd.date_range( start, end, freq='d' )
list_of_dates[i].append(new_date)
Если у вас даты имеют типа datetime, то это сделать довольно просто (я перевел сразу date_range в список):
df["range"] = df.apply(lambda x: pd.date_range(start=x["start"], end=x["end"], freq="D")
.date.tolist(), axis=1)
тогда df у вас будет:
start end range
0 2020-02-14 2020-02-16 [2020-02-14, 2020-02-15, 2020-02-16]
1 2020-03-08 2020-03-10 [2020-03-08, 2020-03-09, 2020-03-10]
2 2020-03-17 2020-03-19 [2020-03-17, 2020-03-18, 2020-03-19]
3 2020-04-12 2020-04-19 [2020-04-12, 2020-04-13, 2020-04-14, 2020-04-1...
4 2020-05-01 2020-05-03 [2020-05-01, 2020-05-02, 2020-05-03]
Answered by strawdog on January 5, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP