Как создать N дубликатов строк в DataFrame?
Есть DataFrame, во втором столбце которого, каждая строка содержит какое-то значение. Нужно добавить N строк в промежутки с этим значение, то есть, как-бы "раскатать" значения на большее количество строк.
2015.08.07 98
2015.08.07 194
2015.08.07 116
2015.08.07 118
2015.08.07 127
2015.08.07 113
2015.08.07 81
Например на 3:
2015.08.07 98
2015.08.07 98
2015.08.07 98
2015.08.07 194
2015.08.07 194
2015.08.07 194
2015.08.07 116
2015.08.07 116
2015.08.07 116
2015.08.07 118
2015.08.07 118
2015.08.07 118
2015.08.07 127
2015.08.07 127
2015.08.07 127
2015.08.07 113
2015.08.07 113
2015.08.07 113
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Исходный фрейм:
In [39]: df
Out[39]:
col1 col2
0 2015.08.07 98
1 2015.08.07 194
2 2015.08.07 116
3 2015.08.07 118
4 2015.08.07 127
5 2015.08.07 113
6 2015.08.07 81
In [40]: df.dtypes
Out[40]:
col1 object
col2 int64
dtype: object
решение:
import numpy as np
res = pd.DataFrame(np.repeat(df.values, 3, axis=0), columns=df.columns).astype(df.dtypes)
результат:
In [42]: res
Out[42]:
col1 col2
0 2015.08.07 98
1 2015.08.07 98
2 2015.08.07 98
3 2015.08.07 194
4 2015.08.07 194
5 2015.08.07 194
6 2015.08.07 116
7 2015.08.07 116
8 2015.08.07 116
9 2015.08.07 118
10 2015.08.07 118
11 2015.08.07 118
12 2015.08.07 127
13 2015.08.07 127
14 2015.08.07 127
15 2015.08.07 113
16 2015.08.07 113
17 2015.08.07 113
18 2015.08.07 81
19 2015.08.07 81
20 2015.08.07 81
In [43]: res.dtypes
Out[43]:
col1 object
col2 int64
dtype: object