Дано
df
shop item_id
0 Toy ball
1 Toy book
И
n = 5 # Number of days.
Начните с повторения каждой строки DataFrame по количеству дней.
df = pd.DataFrame(df.values.repeat(n, axis=0), columns=df.columns)
Теперь давайте используемgroupby
, cumcount
и некоторая арифметика timedelta с pd.DateOffset
:
days = pd.Series([
pd.DateOffset(days=x) for x in df.groupby(['shop', 'item_id']).cumcount()
])
df['date'] = days + pd.to_datetime('2015-1-1')
print(df)
shop item_id date
0 Toy ball 2015-01-01
1 Toy ball 2015-01-02
2 Toy ball 2015-01-03
3 Toy ball 2015-01-04
4 Toy ball 2015-01-05
5 Toy book 2015-01-01
6 Toy book 2015-01-02
7 Toy book 2015-01-03
8 Toy book 2015-01-04
9 Toy book 2015-01-05