如何将整数转换为月和年格式

时间:2019-12-02 04:40:55

标签: python datetime indexing formatting monthcalendar

我在Excel CSV中有一个数据集,其中的索引由日期表示,但是其格式如下:

201001
201002
201003 and so on.. 

因此它的格式为YYYYMM。我需要在Python中将其转换为datetime格式。

3 个答案:

答案 0 :(得分:2)

您可以使用strptime()将其转换为日期时间。

from datetime import datetime 

data = ['201001', '201002', '201003']
dt = [datetime.strptime(s, '%Y%m') for s in data] 

输出

[datetime.datetime(2010, 1, 1, 0, 0),
 datetime.datetime(2010, 2, 1, 0, 0),
 datetime.datetime(2010, 3, 1, 0, 0)]

字符串'%Y%m告诉函数日期格式为YYYYMMstrftime.org上有strftimestrptime指令的方便引用。

编辑:

如果您的数据类是浮点数或整数,则在使用strptime()之前,首先需要将它们转换为字符串。为此,您只需在列表推导内调用str()

data = [201001, 201002, 201003]
dt = [datetime.strptime(str(s), '%Y%m') for s in data] 

答案 1 :(得分:0)

使用此代码:

from datetime import date
myint=201001
mydate=date(myint//100, myint%100, 1)

答案 2 :(得分:0)

尝试:

def four_or_five(lst):
    return lst.count(4) + lst.count(5) # .count() is self explanatory, but below is another way which is more similar to your code:

def alt_four_or_five(lst):
    c = 0
    for i in lst:
        if i == 4 or i == 5:
            c += 1
    return c

big_list_1 = [4, 2, 1, 2, 4, 2, 4, 4, 5, 2, 2, 1, 5, 2, 4, 3, 1, 1, 3, 3, 5]
big_list_2 = [5, 2, 1, 2, 4, 5, 4, 4, 1, 2, 2, 2, 4, 4, 4, 3, 1, 2, 3, 3, 2]
big_list_3 = [4, 1, 2, 1, 2, 1, 2, 5, 1, 1, 1, 1, 4, 2, 2, 1, 5, 1, 3, 4, 1]

bl1_count = four_or_five(big_list_1)
bl2_count = four_or_five(big_list_2)
bl3_count = four_or_five(big_list_3)

result = max([bl1_count, bl2_count, bl3_count) 

print(result) # => 8
相关问题