«Ни один из [Индекс (['широта', 'долгота'], dtype = 'объект')] не находится в [индексе]" - PullRequest
1 голос
/ 30 сентября 2019

У меня есть фрейм данных pandas с геолокациями, и я пытаюсь создать столбец и передать ему функцию, которая будет получать баллы ходьбы для каждого местоположения.

Это мой фрейм данных:

df_test[['latitude', 'longitude']]

    latitude    longitude
0   50.673170   -120.322639
1   50.669597   -120.341833
2   50.650727   -120.150661
3   50.687545   -120.297688
4   50.772361   -122.811211
5   50.882304   -119.865000
6   50.643431   -120.362385
7   50.707459   -120.376297
8   50.708614   -120.409419
9   50.697850   -120.389101
10  50.659250   -119.998597

Когда я проверяю функцию на одной переменной, все работает нормально:

walkscore(df_test['latitude'][0], df_test['longitude'][0], key)

71

Но когда я пытался передать этоФункция для всего набора данных, следующим образом, я получил ошибку:

df_test.loc['walkscore'] = df_test.loc[['latitude', 'longitude']].\
    apply(lambda x:
                    walkscore(x['latitude'], x['longitude'], apikey), axis='columns')

KeyError: "None of [Index(['latitude', 'longitude'], dtype='object')] are in the [index]"

Я попытался сбросить индекс, но это не помогает. Я что-то здесь не так делаю?

1 Ответ

1 голос
/ 30 сентября 2019

Удалить loc, потому что нужны отдельные столбцы, а не значения индекса:

df_test['walkscore'] = df_test.\
    apply(lambda x: walkscore(x['latitude'], x['longitude'], apikey), axis='columns')

Проверьте с помощью функции примера:

apikey = 'aaa'
def walkscore(x, y, apikey):
    return tuple((x, y))

df_test['walkscore'] = df_test.\
    apply(lambda x: walkscore(x['latitude'], x['longitude'], apikey), axis='columns')

print (df_test)
     latitude   longitude                                  walkscore
0   50.673170 -120.322639                    (50.67317, -120.322639)
1   50.669597 -120.341833  (50.669596999999996, -120.34183300000001)
2   50.650727 -120.150661           (50.650727, -120.15066100000001)
3   50.687545 -120.297688                   (50.687545, -120.297688)
4   50.772361 -122.811211           (50.772361, -122.81121100000001)
5   50.882304 -119.865000                      (50.882304, -119.865)
6   50.643431 -120.362385                   (50.643431, -120.362385)
7   50.707459 -120.376297                   (50.707459, -120.376297)
8   50.708614 -120.409419          (50.708614000000004, -120.409419)
9   50.697850 -120.389101                    (50.69785, -120.389101)
10  50.659250 -119.998597                    (50.65925, -119.998597)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...