def test_explode(): df = pd.DataFrame({'A': [[1, 2, 3], [9], [], [3, 4]], 'B': 1}) exploded = bdf.explode(df) assert len(exploded) == 7 assert all(df.B == 1) df["C"] = df.A.copy() exploded = bdf.explode(df) assert len(exploded) == 7 assert all(df.B == 1) assert all(df.A == df.C) df["D"] = [[1], [3], [4, 5], []] with pytest.raises(ValueError) as e: exploded = bdf.explode(df) assert "different jaggedness" in str(e) df2 = pd.DataFrame({ 'A': [[np.arange(i + 1) + j for i in range((j % 2) + 1)] for j in range(4)], 'B': np.arange(4)[::-1], }) exploded = bdf.explode(df2) assert len(exploded) == 8
def test_explode(): df = pd.DataFrame({'A': [[1, 2, 3], [9], [], [3, 4]], 'B': 1}) exploded = bdf.explode(df) assert len(exploded) == 6 assert all(df.B == 1) assert not df.isnull().any().any() df["C"] = df.A.copy() exploded = bdf.explode(df) assert len(exploded) == 6 assert all(df.B == 1) assert all(df.A == df.C) df["D"] = [[1], [3], [4, 5], []] with pytest.raises(ValueError) as e: exploded = bdf.explode(df) assert "different jaggedness" in str(e) df2 = pd.DataFrame({'A': [[np.arange(i + 1) + j for i in range((j % 2) + 1)] for j in range(4)], 'B': np.arange(4)[::-1], }) exploded = bdf.explode(df2) assert len(exploded) == 8 df = pd.DataFrame({'number': [1, 8, 3], 'string': ['one', 'eight', 'three']}) exploded = bdf.explode(df) assert len(exploded) == 3 df["list"] = [list(range(i)) for i in df.number] exploded = bdf.explode(df) assert len(exploded) == 1 + 8 + 3 assert np.array_equal(exploded.list, [0, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2])