Мне нужно написать функцию, а затем применить ее к столбцу информационного кадра в пандах. Мой фрейм данных выглядит следующим образом. Данные сортируются по id, а затем по столбцам периода.
period id column1
0 2013-01-31 5 NaT
1 2013-02-28 5 28 days
2 2013-03-31 5 31 days
3 2013-04-30 5 30 days
4 2016-05-31 6 NaT
5 2016-06-30 6 30 days
6 2016-08-31 6 62 days
Новые значения столбца должны быть определены в соответствии со значениями в column1:
, если column1 = NaT илиcolumn1> 31, затем новый столбец соответствует значению в столбце периода
Иначе - значения нового столбца должны быть скопированы из его предыдущей строки: новый столбец i-я строка = новый столбец i-1 строка.
Я очень плохо знаком с Python, и мой код не работает:
def f(x):
if not x or x > 31
return x=df['period']
else
return x=x.shift()
df['newcolumn'] = df['column1'].apply(f)
Вывод должен быть таким:
period id column1 newcolumn
0 2013-01-31 5 NaT 2013-01-31
1 2013-02-28 5 28 days 2013-01-31
2 2013-03-31 5 31 days 2013-01-31
3 2013-04-30 5 30 days 2013-01-31
4 2016-05-31 6 NaT 2016-05-31
5 2016-06-30 6 30 days 2016-05-31
6 2016-08-31 6 62 days 2016-08-31
Любая помощь будет высоко ценится.