У меня есть фрейм данных act
со столбцами как ['ids','start-yr','end-yr']
.
Я хочу создать еще один фрейм данных timeline
со столбцами как ['ids','years']
.
, используя act
df.Поэтому, если act
имеет поля как
ids start-yr end-yr
--------------------------------
'IAs728-ahe83j' 2014 2016
'J8273nbajsu-193h' 2012 2018
, я хочу заполнить timeline
df следующим образом:
ids years
------------------------
'IAs728-ahe83j' 2014
'IAs728-ahe83j' 2015
'IAs728-ahe83j' 2016
'J8273nbajsu-193h' 2012
'J8273nbajsu-193h' 2013
'J8273nbajsu-193h' 2014
'J8273nbajsu-193h' 2015
'J8273nbajsu-193h' 2016
'J8273nbajsu-193h' 2017
'J8273nbajsu-193h' 2018
Моя попытка на данный момент:
timeline = pd.DataFrame(columns=['ids','years'])
cnt = 0
for ix, row in act.iterrows():
for yr in range(int(row['start-yr']), int(row['end-yr'])+1, 1):
timeline[cnt, 'ids'] = row['ids']
timeline[cnt, 'years'] = yr
cnt += 1
Но это очень дорогостоящая операция, отнимающая слишком много времени (что, я знаю, очевидно).Так какой же должен быть лучший питонический подход к заполнению панды в такой ситуации?
Любая помощь приветствуется, спасибо.