У меня есть dataframe
как:
id date value
1 2016 3
2 2016 1
1 2018 1
1 2016 1.1
Теперь я хочу воспроизвести строки по какой-то странной причине с помощью логики:
if value > 1
reproduce row value times - 1
with value = 1
or fraction left for last unit
для лучшего понимания рассмотрим только 1-й ряд dataframe
, т.е.:
id date value
1 2016 3
, который я разбил на 3 строки как:
id date value
1 2016 1
1 2016 1
1 2016 1
но рассмотрим последнюю строку, т. Е .:
id date value
1 2016 1.1
Который разбит как:
id date value
1 2016 1
1 2016 0.1
т.е. если есть какая-то дробь, то она разбивается отдельно, иначе в одной единице
, а затем группировать по идентификатору и сортировать по дате, очевидно, просто.
т.е. новый dataframe
будет выглядеть так:
id date value
1 2016 1
1 2016 1
1 2016 1
1 2016 1
1 2016 0.1
1 2018 1
2 2016 1
Основная проблема - воспроизведение строк.
ОБНОВЛЕНО
Образец dataframe
код:
df = pd.DataFrame([[1,2018,5.1],[2,2018,2],[1,2016,1]], columns=["id", "date", "value"])