Я новичок в python, и мне нужна небольшая помощь с моим кодом, чтобы выполнить итерацию по разным фреймам данных с теми же столбцами.
Мой фрейм данных выглядит так:
Date, Product, Value1, Value2
13-3-2020, A, 10, 15
13-4-2020, A, 11, 26
13-5-2020, A, 14, 14
2-2-2018, B, 10, 15
18-2-2018, B, 11, 26
5-4-2018, B, 14, 14
5-5-2018, B, 12, 12
Я создал список фреймов данных, сгруппированных по продуктам:
groups = list(df.groupby('Product'))
И затем я хочу заполнить каждый фрейм данных первым днем месяца между первой и последней датами. К сожалению, у меня только последний продукт в качестве вывода, как отдельный фрейм данных.
Я пробовал этот код:
for g, grp in groups:
month_grp = pd.Series(pd.date_range(start=min(grp['Date']), end=max(grp['Date']), freq='MS'), name="Date").to_frame()
grp = grp.append(month_grp, ignore_index=True)
grp = grp.sort_values(by='Date').reset_index(drop=True)
print(grp)
Date Product Value1 Value2
0 2018-02-02 B 10.0 15.0
1 2018-02-18 B 11.0 26.0
2 2018-03-01 NaN NaN NaN
3 2018-04-01 NaN NaN NaN
4 2018-05-01 NaN NaN NaN
5 2018-05-04 B 14.0 14.0
6 2018-05-05 B 12.0 12.0
Решение, которое я ищу, это итерация по каждому продукту, фреймворку данных. И в идеале сохранить этот результат в групповом списке фреймов данных, потому что потом я выполняю больше вычислений.
Любая помощь будет признательна. Даже если это новый подход к тому, как обрабатывать этот фрейм данных по группам, и это не корыто pandas
.
Заранее спасибо.