Os pandas se aplicam ao dateframe produz '<valores internos do método de…'

Estou tentando construir umObjeto GeoJSON. Minha entrada é um csv com uma coluna de endereço, uma coluna lat e uma coluna lon. Criei pontos Shapely a partir das coordenadas, armazene-os em um determinado raio e obtenha o dicionário de coordenadas por meio da opção de mapeamento - até agora, tudo bem. Então, depois de se referir aessa questão, Escrevi a seguinte função para obter uma série de dicionários:

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

e eu apliquei assim:

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

Minha coluna resultante está cheia destes:<built-in method values of dict object at 0x10...

A parte mais estranha é quando chamo diretamente a função (ou seja,make_geojson(data.loc[0]) Na verdade, eu entendo o dicionário que estou esperando. Talvez o mais estranho seja que, quando chamo as funções que recebo da aplicação (por exemplo,data.output[0](), data.loc[0]['output']()) Recebo o equivalente da seguinte lista:[data.loc[0]['geom'], {'address':data.loc[0]['address']}], ou seja, os valores (mas não as chaves) do dicionário que estou tentando obter.

Para aqueles que tocam em casa, aqui está um exemplo de brinquedo:

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)

questionAnswers(2)

yourAnswerToTheQuestion