with values column change python replace pandas dataframe

values - replace numbers in dataframe python



Reemplazar todas las ocurrencias de una cadena en un marco de datos de pandas(Python) (3)

Tengo un marco de datos de pandas con alrededor de 20 columnas.

Es posible reemplazar todas las apariciones de una cadena (aquí una nueva línea) escribiendo manualmente todos los nombres de columna:

df[''columnname1''] = df[''columnname1''].str.replace("/n","<br>") df[''columnname2''] = df[''columnname2''].str.replace("/n","<br>") df[''columnname3''] = df[''columnname3''].str.replace("/n","<br>") ... df[''columnname20''] = df[''columnname20''].str.replace("/n","<br>")

Desafortunadamente, esto no funciona:

df = df.replace("/n","<br>")

¿Hay alguna otra solución más elegante?


Esto eliminará todas las líneas nuevas y espacios innecesarios. Puede editar '''' .join para especificar un personaje de reemplazo

df[''columnname''] = [''''.join(c.split()) for c in df[''columnname''].astype(str)]


Parece que Pandas ha cambiado su API para evitar ambigüedades al manejar expresiones regulares. Ahora deberías usar:

df.replace({''/n'': ''<br>''}, regex=True)

Por ejemplo:

>>> df = pd.DataFrame({''a'': [''1/n'', ''2/n'', ''3''], ''b'': [''4/n'', ''5'', ''6/n'']}) >>> df a b 0 1/n 4/n 1 2/n 5 2 3 6/n >>> df.replace({''/n'': ''<br>''}, regex=True) a b 0 1<br> 4<br> 1 2<br> 5 2 3 6<br>


Puede usar replace y pasar las cadenas para buscar / reemplazar como claves / elementos del diccionario:

df.replace({''/n'': ''<br>''}, regex=True)

Por ejemplo:

>>> df = pd.DataFrame({''a'': [''1/n'', ''2/n'', ''3''], ''b'': [''4/n'', ''5'', ''6/n'']}) >>> df a b 0 1/n 4/n 1 2/n 5 2 3 6/n >>> df.replace({''/n'': ''<br>''}, regex=True) a b 0 1<br> 4<br> 1 2<br> 5 2 3 6<br>