Este es un ejemplo del archivo que tengo,
Name Att1 Att2 Att3
AB_EN 1 2 3
CD 5 6 7
FG_EN 7 8 9
Entonces, en la columna 'Nombre', donde '_EN' está presente, quiero eliminar la parte '_EN'. El resultado debe ser el siguiente:
Name Att1 Att2 Att3
AB 1 2 3
CD 5 6 7
FG 7 8 9
Esto es lo que estaba intentando:
name = df['Name']
for entry in name:
if "_EN" in entry:
entry = entry.split('_')[0]
Sin embargo, esto no está funcionando. ¿Cuál es una buena manera de hacer esto?
3 respuestas
Utilice str.split
Ej:
df = pd.DataFrame({"Name": ["AB_EN", "CD", "FG_EN"]})
df['Name'] = df['Name'].str.split("_").str[0]
print(df)
Salida:
Name
0 AB
1 CD
2 FG
Puede utilizar los métodos de cadena de Serie de pandas
En tu caso eso sería
df['Name']=(df.Name
.str.split('_') # split on _
.str[0] # Only keep first part of the split
)
Esto debería funcionar para usted:
df['Name'] = [name.split('_')[0] for name in df['Name']]
Solo tiene que hacer los cambios en el lugar de la serie en su marco de datos.
Preguntas relacionadas
Preguntas vinculadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.