When create a multiindex using from\_tuples, the create index object has a different order than the input tuple

I am trying to add a column level to a data frame, using pd.MultiIndex.from\_tuples method, but the levels is different from what I expected.

```
df = pd.DataFrame({'x_1':[1, 2], 'x_2':[3, 4], 'x_10':[3, 4], 'y_1':[5, 6], 'y_2':[7, 8], 'y_10':[1, 2]})
df = df.reindex(columns=['x_1', 'x_2', 'x_10', 'y_1', 'y_2', 'y_10'])
index = pd.MultiIndex.from_tuples([tuple(c.split('_')) for c in df.columns])
print(index)

MultiIndex(levels=[['x', 'y'], ['1', '10', '2']],
           labels=[[0, 0, 0, 1, 1, 1], [0, 2, 1, 0, 2, 1]])

```

When I add the level to the dataframe and perform stacking, the order is not what I want.

```
df.columns = index
df.stack()

      x  y
0 1   1  5
  10  3  1
  2   3  7
1 1   2  6
  10  4  2
  2   4  8

```

I expect the index levels look like:

```
MultiIndex(levels=[['x', 'y'], ['1', '2', '10']])

```

and stacking will look like the following:

```
df.stack()
      x  y
0 1   1  5
  2   3  7
  10  3  1
1 1   2  6
  2   4  8
  10  4  2

```