Question: In Pandas I have a series and a multi-index:

```
s = pd.Series([1,2,3,4], index=['w', 'x', 'y', 'z'])
idx = pd.MultiIndex.from_product([['a', 'b'], ['c', 'd']])

```

What is the best way for me to create a DataFrame that has idx as index, and s as value for each row, preserving the index in S as columns?

```
df =
       w   x   y   z
a  c   1   2   3   4
   d   1   2   3   4
b  c   1   2   3   4
   d   1   2   3   4

```

Answer: 
Use the `pd.DataFrame` constructor followed by `assign`

```
pd.DataFrame(index=idx).assign(**s)

     w  x  y  z
a c  1  2  3  4
  d  1  2  3  4
b c  1  2  3  4
  d  1  2  3  4

```
Use [s]\*len(s) as data, idx as index and s.index as column to reconstruct a df.

```
pd.DataFrame([s]*len(s),idx,s.index)
Out[56]: 
     w  x  y  z
a c  1  2  3  4
  d  1  2  3  4
b c  1  2  3  4
  d  1  2  3  4

```