Saltar al contenido

python/pandas: convierte el mes en el nombre del mes

Nuestros programadores estrellas han agotado sus depósitos de café, en su búsqueda día y noche por la solución, hasta que Sebastián encontró el hallazgo en Bitbucket y en este momento la compartimos aquí.

Solución:

Puede hacer esto de manera eficiente combinando calendar.month_abbr y df[col].apply()

import calendar
df['Month'] = df['Month'].apply(lambda x: calendar.month_abbr[x])

Dado que los nombres de los meses abreviados son las tres primeras letras de sus nombres completos, primero podríamos convertir el Month columna a datetime y luego usar dt.month_name() para obtener el nombre completo del mes y finalmente usar str.slice() método para obtener las primeras tres letras, todo usando pandas y solo en una línea de código:

df['Month'] = pd.to_datetime(df['Month'], format='%m').dt.month_name().str.slice(stop=3)

df

  Month client
0   Feb sss
1   Dec yyy
2   Jun www

Puede hacer esto fácilmente con una columna aplicar.

import pandas as pd

df = pd.DataFrame('client':['sss', 'yyy', 'www'], 'Month': ['02', '12', '06'])

look_up = '01': 'Jan', '02': 'Feb', '03': 'Mar', '04': 'Apr', '05': 'May',
            '06': 'Jun', '07': 'Jul', '08': 'Aug', '09': 'Sep', '10': 'Oct', '11': 'Nov', '12': 'Dec'

df['Month'] = df['Month'].apply(lambda x: look_up[x])
df

  Month client
0   Feb    sss
1   Dec    yyy
2   Jun    www

Te mostramos comentarios y valoraciones

Eres capaz de favorecer nuestra función añadiendo un comentario o dejando una puntuación te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *