У меня есть фрейм данных pandas, который имеет данные на основе месяца следующим образом:
df
id Month val
g1 Jan 1
g1 Feb 5
g1 Mar 61
Я хочу следующее:
Я хочу преобразовать фрейм данных в недельную структуру со столбцом месяца (заменен или нет) на все недели, которые могут произойти в этом месяце, поэтому выходные данные должны выглядеть следующим образом :( таким образом, 4 недели для каждого месяца)
new_df
id week val
g1 1 1
g1 2 1
g1 3 1
g1 4 1
g1 5 5
g1 6 5
g1 7 5
g1 8 5
g1 9 61
g1 10 61
g1 11 61
g1 12 61
Я попытался использовать следующую функцию и применить ее к фрейму данных pandas, но это не работает:
SAMPLE CODE
def myfun(mon):
if mon == 'Jan':
wk = list(range(1,5))
elif mon == 'Feb':
wk = list(range(5,9))
else:
wk = list(range(9,13))
return wk
df['week'] = df.apply(lambda row: myfun(row['Month']), axis=1)
del df['Month']
Вывод, который я получаю, следующий: это не то, что я хочу:
id val week
g1 1 [1, 2, 3, 4]
g1 5 [5, 6, 7, 8]
g1 61 [9, 10, 11, 12]
Кроме того, есть ли хороший способ добиться этого?
Помощь будет очень ценится. Спасибо.