Los pandas se aplican al marco de fecha y produce '<valores de método integrados de ...'

Estoy tratando de construir unObjeto GeoJSON. Mi entrada es un csv con una columna de dirección, una columna lat y una columna lon. Luego creé puntos Shapely a partir de las coordenadas, los amortigué en un radio determinado y obtuve el diccionario de coordenadas a través de la opción de mapeo, hasta ahora, todo bien. Luego, después de referirme aesta pregunta, Escribí la siguiente función para obtener una serie de diccionarios:

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

y lo apliqué así:

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

Mi columna resultante está llena de estos:<built-in method values of dict object at 0x10...

La parte más extraña es cuando llamo directamente a la función (es decirmake_geojson(data.loc[0]) De hecho, obtengo el diccionario que estoy esperando. Quizás aún más extraño es eso, cuando llamo a las funciones que obtengo de la aplicación (p. Ej.data.output[0](), data.loc[0]['output']()) Obtengo el equivalente de la siguiente lista:[data.loc[0]['geom'], {'address':data.loc[0]['address']}], es decir, los valores (pero no las claves) del diccionario que intento obtener.

Para aquellos de ustedes que juegan en casa, aquí hay un ejemplo de juguete:

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)

Respuestas a la pregunta(2)

Su respuesta a la pregunta