Aplicar el diccionario de python a la columna de un archivo CSV

Aplicar el diccionario de python a la columna de un archivo CSV

Tengo un archivo CSV que incluye una columna de datos que no es fácil de usar. Necesito traducir esos datos en algo que tenga sentido. Buscar/reemplazar simple parece voluminoso ya que hay docenas, si no cientos, de diferentes combinaciones posibles que quiero traducir.

Por ejemplo: BLK = Negro o MNT TP = Cima de la montaña

Hay docenas, si no cientos, de traducciones posibles; ya tengo muchas en una tabla CSV. El problema es cómo usar ese diccionario para cambiar los valores en otra tabla CSV. También es importante tener en cuenta que esto (eventualmente) deberá ejecutarse solo cada pocos minutos, no solo una traducción única.

Mostrar la mejor respuesta

¿Puede proporcionar alguna entrada de muestra y salida de muestra para que tengamos una idea de en qué formatos están los CSV?

¿Cuál es exactamente tu pregunta de programación?

Necesito tomar un archivo CSV que tiene una columna de información esencialmente abreviada y convertirlo en palabras completas. Por ejemplo, si necesito "NB" para convertirse en "North Bound", u otro ejemplo sería "BLND" para convertirse en "Blind". El archivo se actualiza constantemente, por lo que necesito un script que pueda hacer esto constantemente, no solo una vez.

Su caso parece una unión clásica (relacional). El siguiente artículo puede ser relevante. codespeedy.com/…

Sería bueno si pudieras describir con más detalle cuáles son los datos en los que estás trabajando. Sin embargo, haré mi mejor suposición.

Digamos que tiene un archivo CSV, usa pandas para leerlo en un marco de datos llamado df, y la columna "no fácil de usar" llamada col. Para reemplazar todo el valor en la columna col, primero necesita un diccionario que contenga todas las claves (textos originales) y valores (textos nuevos):

my_dict = {"BLK": "Black", "MNT TP": Mountain Top,...}

Luego, asigne el diccionario a la columna:

df["col"] = df["col"].map(lambda x: my_dict.get(x, x))

Si una clave aparece en el diccionario, será reemplazada por el nuevo valor correspondiente en el diccionario, de lo contrario, mantiene el valor original.

Bien, ¡esto funciona! Mi único problema restante es que se está guardando como la versión original (excepto que se agrega un número de línea). 'df.to_csv('c:/PDW/convertido.csv', encabezado=Falso, modo = 'a')'

¡En realidad esto funciona! ¡Acabo de tener un problema con el archivo que no escribe! Gracias.

¡Me alegro de que pudiera ayudar! En su código, mode='a' significa que agregará la nueva salida al archivo existente. Puede verificar al final del archivo, para ver si escribió algo nuevo allí. Además, debe marcar mi respuesta arriba (haciendo clic en el signo de verificación) para que las personas puedan saber que está resuelto.