Pandas применяются к dateframe производит «<значения встроенного метода…»

Я пытаюсь построитьGeoJSON объект, Мой ввод - CSV со столбцом адреса, столбцом lat и столбцом lon. Затем я создал точки Shapely из координат, буферизовал их по заданному радиусу и получил словарь координат с помощью опции отображения - пока что все хорошо. Затем после обращения кэтот вопросЯ написал следующую функцию, чтобы получить серию словарей:

def make_geojson(row): return {'geometry':row['geom'], 'properties':{'address':row['address']}}

и я применил это так:

data['new_output'] = data.apply(make_geojson, axis=1)

Мой получившийся столбец полон этих:<built-in method values of dict object at 0x10...

Самое странное, когда я напрямую вызываю функцию (т.е.make_geojson(data.loc[0]) Я действительно получаю словарь, который я ожидаю. Возможно, еще более странно то, что, когда я вызываю функции, которые я получаю от применения (например,data.output[0](), data.loc[0]['output']()) Я получаю эквивалент следующего списка:[data.loc[0]['geom'], {'address':data.loc[0]['address']}]то есть значения (но не ключи) словаря, который я пытаюсь получить.

Для тех из вас, кто играет дома, вот игрушечный пример:

from shapely.geometry import Point, mapping
import pandas as pd

def make_geojson(row):
    return {'geometry':row['geom'], 'properties':{'address':row['address']}}

data = pd.DataFrame([{'address':'BS', 'lat':34.017, 'lon':-117.959}, {'address':'BS2', 'lat':33.989, 'lon':-118.291}])
data['point'] = map(Point, zip(data['lon'], data['lat']))
data['buffer'] = data['point'].apply(lambda x: x.buffer(.1))
data['geom'] = data.buffer.apply(mapping)
data['output'] = data.apply(make_geojson, axis=1)

Ответы на вопрос(2)

Ваш ответ на вопрос