如何将数据列中的数字月份转换为月份名称?
嘿,这个需求太常见啦!我给你整理了几种常用工具的实现方法,你可以根据自己的场景来选:
在Excel中转换
有两种简单的方式:
- TEXT函数法:直接利用日期格式转换,公式非常简洁。假设你的月份数字在A列,在B1单元格输入:
=TEXT(A1*28,"mmmm")
然后下拉填充就行。原理是把数字转成一个对应月份的日期(比如7*28=196,对应1900年7月16日),再提取完整月份名称。 - CHOOSE函数法:适合需要自定义月份名称的场景(比如要中文或者缩写),公式如下:
=CHOOSE(A1,"January","February","March","April","May","June","July","August","September","October","November","December")
这个就是按数字顺序直接映射对应的名称,灵活度很高。
在Python中转换(以Pandas处理数据集为例)
如果是用Pandas处理表格数据,有两种常用方案:
- Datetime转换法:把数字列转成日期格式,再提取月份名称:
这样直接就能得到完整的英文月份名称,要是想要缩写的话,把import pandas as pd # 假设你的数据框是df,月份列叫'month' df['month_name'] = pd.to_datetime(df['month'], format='%m').dt.month_name()month_name()改成month_abbr()就行。 - Calendar模块映射法:用Python内置的calendar模块来做映射,也很直观:
同样,import pandas as pd import calendar df['month_name'] = df['month'].apply(lambda x: calendar.month_name[x])calendar.month_abbr[x]可以得到缩写(比如Jul、Aug)。
在SQL中转换
不同数据库的函数略有不同,给你几个主流的例子:
- MySQL:用
MONTHNAME()函数,先把数字转成日期再提取名称:SELECT MONTHNAME(STR_TO_DATE(month_column, '%m')) AS month_name FROM your_table; - SQL Server:通过构造日期来提取月份名称:
SELECT DATENAME(month, DATEADD(month, month_column - 1, '1900-01-01')) AS month_name FROM your_table; - PostgreSQL:用
TO_CHAR和TO_DATE组合转换:SELECT TO_CHAR(TO_DATE(month_column::text, 'MM'), 'FMMonth') AS month_name FROM your_table;
要是你用的是其他工具(比如R、Power BI之类的),随时说出来我再补充细节~
内容的提问来源于stack exchange,提问作者Z.L
相关产品推荐
相关产品推荐

