2017-02-10 2 views
3

у меня есть панд dataframe с датами и строками, похожими на это:Расширение кадра данных панды с диапазоном дат в колонках

Start  End   Note Item 
2016-10-22 2016-11-05 Z  A 
2017-02-11 2017-02-25 W  B 

мне нужно расширить/преобразовать его ниже, заполняя недели (W-сБ) в период между Start и End столбцов и вперед заполнения данных в Примечание и Элементы:

Start  Note Item 
2016-10-22 Z  A 
2016-10-29 Z  A 
2016-11-05 Z  A 
2017-02-11 W  B 
2017-02-18 W  B 
2017-02-25 W  B 

Каков наилучший способ сделать это с помощью панд? Используется какой-то мультииндекс?

+1

Теперь, когда у вас есть репутация, чтобы проголосовать, вы могли голосовать на ответ Теда, а также. Я просто смотрю на своих коллег-ответчиков панд :-) – piRSquared

ответ

2

Вы можете перемещаться по каждой строке и создать новую dataframe, а затем объединить их вместе

pd.concat([pd.DataFrame({'Start': pd.date_range(row.Start, row.End, freq='W-SAT'), 
       'Note': row.Note, 
       'Item': row.Item}, columns=['Start', 'Note', 'Item']) 
      for i, row in df.iterrows()], ignore_index=True) 

     Start Note Item 
0 2016-10-22 Z A 
1 2016-10-29 Z A 
2 2016-11-05 Z A 
3 2017-02-11 W B 
4 2017-02-18 W B 
5 2017-02-25 W B 
+0

Спасибо! Это очень полезно. Я определенно переусердствовал. – claybot

+0

Есть ли другой способ выполнить это без повторения строки за строкой? – kev8484

Смежные вопросы