How to duplicate Python dataframe one by one?
dataframe, pandas, python
Solution
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.
- use `np.repeat` on an `np.arange` to get the indexer
- construct a new dataframe using this indexer on both values and the index
r = 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
Problem
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?