Скажите, что ваш DataFrame выглядит следующим образом:
d = {'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
'two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
>>> df
one two
a 1.0 1.0
b 2.0 2.0
c 3.0 3.0
d NaN 4.0
>>>
Когда вы получаете доступ к таким столбцам (AllBusStops[['CommonName']]
), он создает DataFrame (вы, вероятно, хотели серию)
>>> z = df[['one']]
>>> type(z)
<class 'pandas.core.frame.DataFrame'>
>>> z
one
a 1.0
b 2.0
c 3.0
d NaN
>>>
Затем вы пытаетесь получить первый элемент с целочисленным индексом (AllBusStops[['CommonName']][i]
), который создает KeyError - DataFrame ожидает метку.
>>> z[0]
Traceback (most recent call last):
File "C:\Python36\lib\site-packages\pandas\core\indexes\base.py", line 2442, in get_loc
...
KeyError: 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<pyshell#288>", line 1, in <module>
z[0]
...
KeyError: 0
Вы можете получить Серию, используя такой столбец
>>> q = df['one']
>>> type(q)
<class 'pandas.core.series.Series'>
>>> q
a 1.0
b 2.0
c 3.0
d NaN
Name: one, dtype: float64
>>>
Затем получить первый элемент в серии
>>> q[0]
1.0
>>>
Обратите внимание, что я сделал простой DataFrame и попытался имитировать шагов вашей программы, чтобы посмотреть, смогу ли я воспроизвести проблему. Это минимальный, полный и проверяемый пример (mcve) - вы должны это прочитать. Иногда создание mcve для себя (или для публикации здесь) освещает проблему для вас или облегчает понимание себя.
Как отлаживать небольшие программы
Как говорится в ответе @ NichloasM, вы можете изучить возможность объединения / объединения данных. У Pandas отличная документация - Объединение, объединение и объединение