Я искал несколько похожих вопросов, таких как 'эквивалентная функция R в Python'.
В R, rep может использоваться для массива или фрейма данных, и вы можете установить параметр each
, чтобы указать, хотите ли вы повторять каждый элемент или повторять весь список / фрейм данных.
Но в Python нужно различать массив и фрейм данных.
Для массива np.repeat
будет повторять каждый элемент, а np.tile
повторять весь массив.
x=['a','b']
np.repeat(x,2)#repeat each element twice
Out[85]: array(['a', 'a', 'b', 'b'], dtype='<U1')
np.tile(x,2)#repeat the whole array twice
Out[86]: array(['a', 'b', 'a', 'b'], dtype='<U1')
Для кадра данных Pandas. pd.concat
может использоваться для повтора всего кадра данных:
d=pd.DataFrame({'x':['a','b'],'y':['c','d']})
d
Out[94]:
x y
0 a c
1 b d
pd.concat([d]*2)
Out[93]:
x y
0 a c
1 b d
0 a c
1 b d
Мой вопрос заключается в том, как повторять каждую строку в кадре данных панд, а повторять это как единое целое. Результат, который я хочу получить:
x y
a c
a c
b d
b d
В любом случае, мне бы хотелось, чтобы в Python была функция, подобная «arep», которую можно использовать как для списка, так и для фрейма данных, а также для указания повтора в целом или повторения каждого элемента.