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.