es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Crear una lista a partir de un marco de datos en Python, también implica agregar el índice.

De una lista de nombres creada (greater_three), quiero encontrar todos los nombres en esa lista en mi DataFrame (new), y modificar esos valores de “coordenadas de ubicación” en ese DataFrame a una nueva lista. Pero cuando agrego, también estoy tomando un valor de índice.

location = []
for name in new['DBA Name']:
    if name in greater_three:
       location.append(new['Location'])
    else:
        pass
Location

Mi lista de salida (location) debe ser así:

[[41.7770923949, -87.6060037796],
[41.7770923949, -87.6060037796],
[41.7770923949, -87.6060037796],

Pero lo estoy obteniendo con un índice de esta manera:

[0 (41.777092394888655, -87.60600377956905)
1 (41.78457591499572, -87.6547753761994)
2 (41.74427989606148, -87.5716351762223)
3 (41.69164609748754, -87.6422140544927)

También hay un problema menor pero curioso, está iterando muchas veces a través de (después de que eliminé todos los nombres duplicados del marco de datos) como se ve a continuación, debería tener solo una longitud de 26 coordenadas (25 incluyendo 0):

22 (41.901086765978654, -87.74854019856667)
23 (41.70774046981763, -87.64300283870763)
24 (41.75937734623751, -87.66111539963164)
25 (41.75655095611123, -87.61068980246957) Name: Location, dtype: object,
0 (41.777092394888655, -87.60600377956905)
1 (41.78457591499572, -87.6547753761994)
2 (41.74427989606148, -87.5716351762223)

23 (41.70774046981763, -87.64300283870763)
24 (41.75937734623751, -87.66111539963164)
25 (41.75655095611123, -87.61068980246957) Name: Location, dtype: object,
0 (41.777092394888655, -87.60600377956905)
1 (41.78457591499572, -87.6547753761994)
2 (41.74427989606148, -87.5716351762223)
3 (41.69164609748754, -87.6422140544927)

Mis columnas se ven así, solo necesito las coordenadas en una lista, puedo tomarlas de ‘Longitutude’ y ‘Latitude’ o de ‘Location’.

enter image description here

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener la lista de salida sin el índice, puede utilizar el método .tolist() en la columna Location:

    python
    location = []
    for name in new['DBA Name']:
    if name in greater_three:
    location.append(new['Location'].tolist())
    else:
    pass
    Location

    Esto debería darle la lista de salida sin el índice:


    [[41.7770923949, -87.6060037796],
    [41.7770923949, -87.6060037796],
    [41.7770923949, -87.6060037796],
    ...
    [41.75655095611123, -87.61068980246957]]

    Si desea obtener las coordenadas de las columnas Longitude y Latitude, puede utilizar la función zip para combinar las dos columnas en una lista de tuplas:

    python
    location = []
    for name in new['DBA Name']:
    if name in greater_three:
    location.append(list(zip(new['Longitude'], new['Latitude'])))
    else:
    pass
    Location

    Esto debería darle la lista de salida sin el índice:


    [[(-87.6060037796, 41.7770923949), (-87.6060037796, 41.7770923949), (-87.6060037796, 41.7770923949), ..., (-87.61068980246957, 41.75655095611123)]]

Comments are closed.