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.

Lectura de .csv en trozos, manteniendo solo las filas que tienen números que coinciden con un marco de datos de referencia, luego escribir esos trozos en otro csv.

Estoy bastante seguro de que junté partes incorrectas del código de otras personas. Cuando pruebo el código a continuación, el tamaño de mi archivo aumenta cuando la idea original era agregar solo las filas con números bbl que coinciden de dos dataframes.

marco de referencia que es solo una columna de números

dfr = pd.read_excel (& # 39;C: /pythonstuff/CRMBBLS.xlsx & # 39;)
reflist = dfr [& # 39;bbl & # 39;]. tolist ()
dfr [& # 39;bbl & # 39;] = dfr [& # 39;bbl & # 39;]. astype (str)

tamaño_de_bloque = 1000
para fragmento en pd.read_csv (& # 39;C: /pythonstuff/pluto_21v3.csv & # 39 ;, chunksize = tamaño_de_bloque):
# diccionario para volver a asignar el municipio al número
di = {“MN”: 1, “BX”: 2, “BK”: 3, “QN”: 4, “SI”: 5}
# agregar ceros principales para preparar la concatenación de columnas
trozo [“municipio”] = trozo [“municipio”]. mapa (di)
trozo [& # 39; bloque & # 39;] = trozo [& # 39; bloque & # 39;]. aplicar (lambda x: & # 39; {0: 0 & gt; 5} & # 39 ;. formato (x))
trozo [& # 39; lote & # 39;] = trozo [& # 39; lote & # 39;]. aplicar (lambda x: & # 39; {0: 0 & gt; 4} & # 39 ;. formato (x))
# crear nuestra columna bbl para comparar con nuestro marco de referencia (bbl en dfr)
trozo [& # 39;bbl & # 39;] = trozo [& # 39; municipio & # 39;]. astype (str) + trozo [& # 39; bloque & # 39;]. astype (str) + trozo [& # 39; lote & # 39;]. astype (str)
mergedStuff = pd.merge(dfr, trozo, on=[‘bbl’], how=’inner’)
trozo.to_csv (“C:/pythonstuff/final.csv”,
encabezado=encabezado, modo = ‘a & # 39;)

Supongo que la parte de fusión está fusionando todo y no desechando las filas que no quiero, luego agregándolo a un archivo CSV masivo.

Realmente soy un principiante en informática. Si estoy completamente fuera de lugar, apreciaría al menos una dirección cardinal para comenzar a poder ayudarme a mí mismo. No puedo analizar la documentación la mitad del tiempo. Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás en el buen camino, pero es posible que debas ajustar tu código para obtener el resultado deseado. Para ayudarte a empezar, aquí hay algunos consejos:

    • Asegúrate de utilizar el argumento how correcto en tu llamada a pd.merge(). El argumento how determina cómo se fusionan los dos dataframes. En tu caso, deseas utilizar how='inner' para mantener solo las filas que coinciden en la columna bbl en ambos dataframes.
    • Después de la fusión, puedes utilizar el método .drop() para eliminar cualquier columna no necesaria del dataframe combinado.
    • Por último, puedes utilizar el método .to_csv() para escribir el dataframe combinado en un archivo CSV.

    Si sigues teniendo problemas, puedes encontrar documentación más detallada en el sitio web de Pandas. ¡Buena suerte!

Comments are closed.