I have a pandas.DataFrame
as follows:
df1 =
a b
0 1 2
1 3 4
I'd like to make this three times to become:
df2 =
a b
0 1 2
0 1 2
0 1 2
1 3 4
1 3 4
1 3 4
df2
is made from a loop, but it is not efficient.
How can I get df2
from df1
using a matrix way which is faster?
Build a one dimensional indexer to slice both the the values
array and index
. You must take care of the index as well to get your desired results.
np.repeat
on an np.arange
to get the indexerr = np.arange(len(df)).repeat(3)
pd.DataFrame(df.values[r], df.index[r], df.columns)
a b
0 1 2
0 1 2
0 1 2
1 3 4
1 3 4
1 3 4
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With