У меня есть эта функция для продления дат, и я хотел бы использовать параметры OpenHour и CloseHour:
def extends_dates(x,OpenHour,CloseHour):
if len(x.groupby(x.Timestamp.dt.date)) == 1:
return x.Timestamp
else:
# Create daterange
d_range = pd.date_range(start=x.Timestamp.dt.date.min(), end=x.Timestamp.dt.date.max()) \
.repeat(2) \
.to_series() \
.iloc[1:-1] \
.reset_index(drop=True) \
.apply(pd.Timestamp)
# Set hours of all date
news = [d.replace(hour=CloseHour) if i % 2 == 0 else d.replace(hour=OpenHour)
for i, d in enumerate(d_range)]
# Add min (from dataframe)
news.insert(0, min(x.Timestamp))
# Add max date (from dataframe)
news.append(max(x.Timestamp))
return pd.Series(news, name="Timestamp")
Но когда я использовал ее с 5h и 20h, она не работает:
out = df.groupby(df.index // 2).apply(extends_dates, args=(5,20)).reset_index(drop=True).to_frame()
TypeError: extends_dates() got an unexpected keyword argument 'args'
Раньше я так использовал без OpenHour и CloseHour в параметрах:
out = df.groupby(df.index // 2).apply(extends_dates).reset_index(drop=True).to_frame()