Doesn't seem possible to assign to .loc when used with IndexSlice
#### Code Sample, a copy-pastable example if possible
Given a dataframe,
```
Year        2018         2019      
Dimension Before After Before After
A              0     1    1.5     2
B              0     1    1.5     2
C              0     1    1.0     3
D              1     1    1.5     2
```
I would like to add another column to each of my Years, e.g. I would like
```
Year       2018              2019             
Dimension After Before Mean After Before  Mean
A             1      0  0.5     2    1.5  0.25
B             1      0  0.5     2    1.5  0.25
C             1      0  0.5     3    1.0  1.00
D             1      1  0.0     2    1.5  0.25
```

I am trying to achieve this using `loc` as this seems the recommended way of doing this (please advise if there is a better way).
```python
df = (
	pd.DataFrame({
		('2018', 'Before'): [0, 0, 0, 1],
		('2018', 'After'): [1, 1, 1, 1],
		('2019', 'Before'): [1.5, 1.5, 1, 1.5],
		('2019', 'After'): [2, 2, 3, 2]
	}, index=['A', 'B', 'C', 'D'])
	.rename_axis(['Year', 'Dimension'], axis='columns')
)
from pandas import IndexSlice as I
df.loc[:, I[:, 'Mean']] = (
	(
		df.loc[:, I[:, 'After']].droplevel(-1, axis='columns')
		- df.loc[:, I[:, 'Before']].droplevel(-1, axis='columns')
	) / 2
)
```

This unfortunately explodes.

```
During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "<ipython-input-42-15b26bf1e10b>", line 16, in <module>
    ) / 2

  File "/home/jarrad/src/ow/fa/analyses/2020-01/postcode/.venv/lib/python3.6/site-packages/pandas/core/indexing.py", line 669, in __setitem__
    indexer = self._get_setitem_indexer(key)

  File "/home/jarrad/src/ow/fa/analyses/2020-01/postcode/.venv/lib/python3.6/site-packages/pandas/core/indexing.py", line 647, in _get_setitem_indexer
    return self._convert_tuple(key)

  File "/home/jarrad/src/ow/fa/analyses/2020-01/postcode/.venv/lib/python3.6/site-packages/pandas/core/indexing.py", line 732, in _convert_tuple
    idx = self._convert_to_indexer(k, axis=i)

  File "/home/jarrad/src/ow/fa/analyses/2020-01/postcode/.venv/lib/python3.6/site-packages/pandas/core/indexing.py", line 1721, in _convert_to_indexer
    return labels.get_locs(obj)

  File "/home/jarrad/src/ow/fa/analyses/2020-01/postcode/.venv/lib/python3.6/site-packages/pandas/core/indexes/multi.py", line 3062, in get_locs
    self.get_loc_level(k, level=i, drop_level=False)[0]

  File "/home/jarrad/src/ow/fa/analyses/2020-01/postcode/.venv/lib/python3.6/site-packages/pandas/core/indexes/multi.py", line 2846, in get_loc_level
    indexer = self._get_level_indexer(key, level=level)

  File "/home/jarrad/src/ow/fa/analyses/2020-01/postcode/.venv/lib/python3.6/site-packages/pandas/core/indexes/multi.py", line 2929, in _get_level_indexer
    code = self._get_loc_single_level_index(level_index, key)

  File "/home/jarrad/src/ow/fa/analyses/2020-01/postcode/.venv/lib/python3.6/site-packages/pandas/core/indexes/multi.py", line 2598, in _get_loc_single_level_index
    return level_index.get_loc(key)

  File "/home/jarrad/src/ow/fa/analyses/2020-01/postcode/.venv/lib/python3.6/site-packages/pandas/core/indexes/base.py", line 2648, in get_loc
    return self._engine.get_loc(self._maybe_cast_indexer(key))

  File "pandas/_libs/index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc

  File "pandas/_libs/index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc

  File "pandas/_libs/hashtable_class_helper.pxi", line 1618, in pandas._libs.hashtable.PyObjectHashTable.get_item

  File "pandas/_libs/hashtable_class_helper.pxi", line 1626, in pandas._libs.hashtable.PyObjectHashTable.get_item

KeyError: 'Mean'
```

This is confusing and unexpected, because the parallel of assigning to a single new column,
```python
df.loc[:, ('2018', 'Mean')] = ( df.loc[:, ('2018', 'After') - df.loc[:, ('2018', 'Before')] ) / 2
```
works as expected.

Additionally, the need to use .droplevel to cleanly do what I want looks clunky and makes me think I might be going about this the wrong.. however maybe there isn't a right way. :)

#### Output of ``pd.show_versions()``

<details>
INSTALLED VERSIONS
------------------
commit           : None
python           : 3.6.9.final.0
python-bits      : 64
OS               : Linux
OS-release       : 4.15.0-76-generic
machine          : x86_64
processor        : x86_64
byteorder        : little
LC_ALL           : None
LANG             : en_AU.UTF-8
LOCALE           : en_AU.UTF-8

pandas           : 1.0.1
numpy            : 1.18.1
pytz             : 2019.3
dateutil         : 2.8.1
pip              : 20.0.2
setuptools       : 39.0.1
Cython           : None
pytest           : None
hypothesis       : None
sphinx           : None
blosc            : None
feather          : None
xlsxwriter       : None
lxml.etree       : None
html5lib         : None
pymysql          : None
psycopg2         : None
jinja2           : 2.11.1
IPython          : 7.12.0
pandas_datareader: None
bs4              : None
bottleneck       : None
fastparquet      : None
gcsfs            : None
lxml.etree       : None
matplotlib       : 3.1.3
numexpr          : None
odfpy            : None
openpyxl         : None
pandas_gbq       : None
pyarrow          : None
pytables         : None
pytest           : None
pyxlsb           : None
s3fs             : None
scipy            : 1.4.1
sqlalchemy       : None
tables           : None
tabulate         : None
xarray           : None
xlrd             : 1.2.0
xlwt             : None
xlsxwriter       : None
numba            : None

</details>
