Повторение определенного ряда данных панд - PullRequest
0 голосов
/ 25 августа 2018

Я хочу повторить определенную строку кадра данных панд для заданного числа раз.

Например, это мой кадр данных

df= pd.DataFrame({
'id' : ['1','1', '2', '2','2','3'],
'val' : ['2015_11','2016_2','2011_9','2011_11','2012_2','2018_2'],
'data':['a','a','b','b','b','c']
})

print(df)

input datafarme

Здесь столбец «Val» содержит дату в строковом формате.У этого есть определенный образец 'Year_month'.Для того же «id» я хочу, чтобы строки повторялись столько раз, сколько эквивалентно разнице между значениями в столбце «val».Все остальные столбцы, кроме столбца val, должны иметь дублированное значение предыдущей строки.

Выходные данные должны быть:

The output should be

1 Ответ

0 голосов
/ 25 августа 2018

Использование resample:

df.val = pd.to_datetime(df.val, format='%Y_%m')
out = df.set_index('val').groupby('id').data.resample('1m').ffill().reset_index()
out.assign(val=out.val.dt.strftime('%Y_%m'))

   id      val data
0   1  2015_11    a
1   1  2015_12    a
2   1  2016_01    a
3   1  2016_02    a
4   2  2011_09    b
5   2  2011_10    b
6   2  2011_11    b
7   2  2011_12    b
8   2  2012_01    b
9   2  2012_02    b
10  3  2018_02    c
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...