Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to repeat cells in pandas DataFrame

I want to repeat cells in a pandas DataFrame. I want to turn

name, number
a, 2
b, 1

into

name, number
a, 2
b, 2
a, 1
b, 1
like image 924
Raag Agrawal Avatar asked Jan 18 '26 17:01

Raag Agrawal


2 Answers

np.tile and np.repeat

pd.DataFrame(dict(
        name=np.tile(df.name.values, 2),
        number=np.repeat(df.number.values, 2)
    ))

  name  number
0    a       2
1    b       2
2    a       1
3    b       1

pd.MultiIndex.from_product

pd.DataFrame(
    pd.MultiIndex.from_product(
        [df.name.unique(), df.number.unique()]
    ).values.tolist(), columns=df.columns)

  name  number
0    a       2
1    b       2
2    a       1
3    b       1
like image 159
piRSquared Avatar answered Jan 21 '26 08:01

piRSquared


repeating rows:

In [10]: pd.concat([df] * 2, ignore_index=True)
Out[10]:
  name  number
0    a       2
1    b       1
2    a       2
3    b       1

cartesian product of columns values:

In [14]: from itertools import product

In [15]: pd.DataFrame(list(product(df.name, df.number)), columns=df.columns)
Out[15]:
  name  number
0    a       2
1    a       1
2    b       2
3    b       1
like image 44
MaxU - stop WAR against UA Avatar answered Jan 21 '26 08:01

MaxU - stop WAR against UA



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!