You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.2 KiB
41 lines
1.2 KiB
7 months ago
|
import numpy as np
|
||
|
import pytest
|
||
|
|
||
|
from pandas import (
|
||
|
MultiIndex,
|
||
|
Series,
|
||
|
)
|
||
|
import pandas._testing as tm
|
||
|
|
||
|
|
||
|
class TestRepeat:
|
||
|
def test_repeat(self):
|
||
|
ser = Series(np.random.default_rng(2).standard_normal(3), index=["a", "b", "c"])
|
||
|
|
||
|
reps = ser.repeat(5)
|
||
|
exp = Series(ser.values.repeat(5), index=ser.index.values.repeat(5))
|
||
|
tm.assert_series_equal(reps, exp)
|
||
|
|
||
|
to_rep = [2, 3, 4]
|
||
|
reps = ser.repeat(to_rep)
|
||
|
exp = Series(ser.values.repeat(to_rep), index=ser.index.values.repeat(to_rep))
|
||
|
tm.assert_series_equal(reps, exp)
|
||
|
|
||
|
def test_numpy_repeat(self):
|
||
|
ser = Series(np.arange(3), name="x")
|
||
|
expected = Series(
|
||
|
ser.values.repeat(2), name="x", index=ser.index.values.repeat(2)
|
||
|
)
|
||
|
tm.assert_series_equal(np.repeat(ser, 2), expected)
|
||
|
|
||
|
msg = "the 'axis' parameter is not supported"
|
||
|
with pytest.raises(ValueError, match=msg):
|
||
|
np.repeat(ser, 2, axis=0)
|
||
|
|
||
|
def test_repeat_with_multiindex(self):
|
||
|
# GH#9361, fixed by GH#7891
|
||
|
m_idx = MultiIndex.from_tuples([(1, 2), (3, 4), (5, 6), (7, 8)])
|
||
|
data = ["a", "b", "c", "d"]
|
||
|
m_df = Series(data, index=m_idx)
|
||
|
assert m_df.repeat(3).shape == (3 * len(data),)
|