way - save csv file in python
Actualizando valor en iterrow para pandas (1)
Las filas que obtiene de iterrows
son copias que ya no están conectadas al marco de datos original, por lo que las ediciones no cambian su marco de datos. Afortunadamente, debido a que cada elemento que recibe de iterrows
contiene el índice actual, puede usarlo para acceder y editar la fila correspondiente del marco de datos:
for index, row in rche_df.iterrows():
if isinstance(row.wgs1984_latitude, float):
row = row.copy()
target = row.address_chi
dict_temp = geocoding(target)
rche_df.loc[index, ''wgs1984_latitude''] = dict_temp[''lat'']
rche_df.loc[index, ''wgs1984_longitude''] = dict_temp[''long'']
En mi experiencia, este enfoque parece más lento que el uso de un enfoque como apply
o map
, pero como siempre, depende de usted decidir cómo realizar el rendimiento / la facilidad de la compensación de la codificación.
Estoy haciendo un trabajo de geocodificación que usé selenium
para raspar la coordenada xy que necesito para la dirección de una ubicación, importé un archivo xls a la estructura de datos de panda y quiero usar un bucle explícito para actualizar las filas que no tienen la coordenada xy. como abajo:
for index, row in rche_df.iterrows():
if isinstance(row.wgs1984_latitude, float):
row = row.copy()
target = row.address_chi
dict_temp = geocoding(target)
row.wgs1984_latitude = dict_temp[''lat'']
row.wgs1984_longitude = dict_temp[''long'']
He leído ¿Por qué esta función no se "toma" después de que aparezca en un DataFrame de pandas? y soy plenamente consciente de que iterrow solo nos da una vista en lugar de una copia para editar, pero ¿qué sucede si realmente actualizo el valor fila por fila? ¿Es lambda
factible?