NaN values when passing a Series to Series.map() I may be going about this all the wrong way..
I am trying to find the postcodes of about 100 UK hospitals. I  have an Excel spread sheet (all_all) of the total number of hospitals/clinics/etc  in the Uk (14,000)  with their  addresses and postcodes.
I have a dataframe (spine) of surgical activity by year across these 100 hospitals with the hospital name repeated in 2817 rows.

spine.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2818 entries, 0 to 2817
Data columns (total 7 columns):
index_col       2818 non-null float64
fyear2818 non-null int64
NNAPID2818 non-null int64
mainspef2818 non-null int64
Trust2818 non-null object
complexcount    2818 non-null float64
simplecount     2818 non-null float64
dtypes: float64(3), int64(3), object(1)
memory usage: 154.2+ KB


I thought I could use Pandas series map. 
importing csv including all 14,000 hospitals.
postcodes_all = pd.read_csv('all_all.csv')

postcodes_all.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 14206 entries, 0 to 14205
Data columns (total 3 columns):
Unnamed: 0     14206 non-null int64
Trust_title    14206 non-null object
postcode       14206 non-null object
dtypes: int64(1), object(2)
memory usage: 333.1+ KB


In the UK hospitals are Trusts so in my dataframe (spine) the column of hospital names = Trust. I am trying to map this to the hospital entries in postcodes_all (Trust_title).
     spine['Trust'].map(postcodes_all['Trust_title'])
0       NaN
1       NaN
2       NaN
3       NaN
4       NaN
       ... 
2813    NaN
2814    NaN
2815    NaN
2816    NaN
2817    NaN
Name: Trust, Length: 2818, dtype: object

It is not finding any matches. The hospital fields are eg LEEDS TEACHING HOSPITALS NHS TRUST and the same entry is in postcodes_all.
Is there a way to explore why it has failed ?. I am a doctor trying to learn python and pandas for data analysis, so ver much early steps. 
I am not sure if it hasn't failed and I just have the wrong datatype defined somewhere, or I am trying to match two columns that are inherently dissimilar and would like to be able to examine my failed code.
Sorry about the vagueness and brevity of the OP as I was rushing to clinic.
Update.
In light of Joe's comments below I have simplified things. From the spine csv I have defined the column to use as 'Trust', and in the postcode csv I have defined the index column as 'Trust'. 
I am now definitely comparing the Hospital title in spine with the index field in postcodes.I now get a key error in 'Trust'. 
and my code is here
import pandas as pd

spine = pd.read_csv('~/Dropbox/Work/NNAP/Spine/Kate_W/kate_spine2.csv', usecols = ['Trust'])



spine.head()

Trust
0   THE WALTON CENTRE NHS FOUNDATION TRUST
1   CAMBRIDGE UNIVERSITY HOSPITALS NHS FOUNDATION ...
2   KING'S COLLEGE HOSPITAL NHS FOUNDATION TRUST
3   LEEDS TEACHING HOSPITALS NHS TRUST
4   NT424

postcodes_all = pd.read_csv('all_all.csv', index_col = 'Trust')


postcodes_all.head()

    Unnamed: 0  postcode
Trust       
MANCHESTER UNIVERSITY NHS FOUNDATION TRUST  0   M13 9WL
SOUTH TYNESIDE AND SUNDERLAND NHS FOUNDATION TRUST  1   SR4 7TP
WORCESTERSHIRE HEALTH AND CARE NHS TRUST    2   WR5 1JR
SOLENT NHS TRUST    3   SO19 8BR
SHROPSHIRE COMMUNITY HEALTH NHS TRUST   4   SY3 8XL


To ensure I am using a series and not a dataframe I have added 'Trust' to the code as below.

map1 = spine['Trust'].map(postcodes_all['Trust'])

KeyErrorTraceback (most recent call last)
~/anaconda3/lib/python3.7/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
   2896try:
-> 2897return self._engine.get_loc(key)
   2898except KeyError:

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

KeyError: 'Trust'

During handling of the above exception, another exception occurred:

KeyErrorTraceback (most recent call last)
<ipython-input-68-921448f7c401> in <module>
----> 1 map1 = spine['Trust'].map(postcodes_all['Trust'])

~/anaconda3/lib/python3.7/site-packages/pandas/core/frame.py in __getitem__(self, key)
   2993if self.columns.nlevels > 1:
   2994return self._getitem_multilevel(key)
-> 2995indexer = self.columns.get_loc(key)
   2996if is_integer(indexer):
   2997indexer = [indexer]

~/anaconda3/lib/python3.7/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
   2897return self._engine.get_loc(key)
   2898except KeyError:
-> 2899return self._engine.get_loc(self._maybe_cast_indexer(key))
   2900indexer = self.get_indexer([key], method=method, tolerance=tolerance)
   2901if indexer.ndim > 1 or indexer.size > 1:

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

KeyError: 'Trust'


I am not sure why this is incorrect and what the key error means.

The reason you get all NaN values is because none of the values in spine['Trust']
are found in the index of postcodes_all['Trust_title'].
map() is used to replace old values with new ones.
It needs a key-value pair to know which new value to use
when replacing each of the old values.
For a series,
it uses the index as the key and the single series column as the value.
A tip on how to debug in such situations,
is to try with a simpler example,
e.g. the one from the pandas documentation that you linked.
See below for an example.
import pandas as pd

s = pd.Series(['cat', 'dog', 'rabbit'])
s

## Output
0       cat
1       dog
2    rabbit
dtype: object


s2 = pd.Series(['carnivore', 'omnivore', 'herbivore'])
s2

## Output
0    carnivore
1     omnivore
2    herbivore
dtype: object


s.map(s2)

## Output
0    NaN
1    NaN
2    NaN
dtype: object

NaN is returned,
since pandas can't find any matching values between the values in s
and the index in s2.
Setting the index of s2 to the values of s would solve this problem.

# Set the values from `s` as the index in `s2`
s2.index = s
s2

## Output
cat       carnivore
dogomnivore
rabbit    herbivore
dtype: object


s.map(s2)

## Output
0    carnivore
1     omnivore
2    herbivore
dtype: object