如何从月份编号中获得月份名称?

例如,如果我有3,我想返回march

date.tm_month()

如何获得弦乐进行曲?


当前回答

我创建了自己的函数,将数字转换为对应的月份。

def month_name (number):
    if number == 1:
        return "January"
    elif number == 2:
        return "February"
    elif number == 3:
        return "March"
    elif number == 4:
        return "April"
    elif number == 5:
        return "May"
    elif number == 6:
        return "June"
    elif number == 7:
        return "July"
    elif number == 8:
        return "August"
    elif number == 9:
        return "September"
    elif number == 10:
        return "October"
    elif number == 11:
        return "November"
    elif number == 12:
        return "December"

然后我可以调用函数。例如:

print (month_name (12))

输出:

>>> December

其他回答

import datetime

monthinteger = 4

month = datetime.date(1900, monthinteger, 1).strftime('%B')

print month

4月

我创建了自己的函数,将数字转换为对应的月份。

def month_name (number):
    if number == 1:
        return "January"
    elif number == 2:
        return "February"
    elif number == 3:
        return "March"
    elif number == 4:
        return "April"
    elif number == 5:
        return "May"
    elif number == 6:
        return "June"
    elif number == 7:
        return "July"
    elif number == 8:
        return "August"
    elif number == 9:
        return "September"
    elif number == 10:
        return "October"
    elif number == 11:
        return "November"
    elif number == 12:
        return "December"

然后我可以调用函数。例如:

print (month_name (12))

输出:

>>> December

这个脚本展示了如何获得数据帧中月份变量/列的日历月缩写。注意,假设month列/变量的值都是数字,可能会有一些缺失的值。

# Import the calendar module
  import calendar
    
# Extract month as a number from the date column
  df['Month']=pd.DatetimeIndex(df['Date']).month

# Using list comprehension extract month abbreviations for each month number
 df['Month_abbr']=[calendar.month_abbr[int(i)] if pd.notna(i) else i for i in df['Month']]

一些好的答案已经使用了日历,但是设置语言环境的效果还没有被提及。

Calendar根据当前地区设置月份名称,例如在法语中:

import locale
import calendar

locale.setlocale(locale.LC_ALL, 'fr_FR')

assert calendar.month_name[1] == 'janvier'
assert calendar.month_abbr[1] == 'jan'

如果您计划在代码中使用setlocale,请确保阅读文档中的提示和警告以及扩展编写器部分。这里显示的示例不能代表它应该如何使用。特别是这两个部分:

在某些库例程中调用setlocale()通常不是一个好主意,因为它会影响整个程序[…] 扩展模块永远不应该调用setlocale()[…]

如果你只需要知道给定数字(1 - 12)的月份名称,这就不太有用了,因为当前日期并不重要。

calendar.month_name[我]

or

calendar.month_abbr[我]

在这里更有用。

这里有一个例子:

import calendar

for month_idx in range(1, 13):
    print (calendar.month_name[month_idx])
    print (calendar.month_abbr[month_idx])
    print ("")

样例输出:

January
Jan

February
Feb

March
Mar

...