我有一个像这样的时间戳列表:
[Timestamp('1951-05-01 00:00:00', freq='D'), Timestamp('1951-05-02 00:00:00', freq='D'), Timestamp('1951-05-03 00:00:00', freq='D'),...]
我需要将其转换为日期时间以适合此格式:
DatetimeIndex(['2007-05-01', '2007-05-02', '2007-05-03', '2007-05-04',
'2007-05-05', '2007-05-06', '2007-05-07', '2007-05-08',
'2007-05-09', '2007-05-10',
...
'2007-09-21', '2007-09-22', '2007-09-23', '2007-09-24',
'2007-09-25', '2007-09-26', '2007-09-27', '2007-09-28',
'2007-09-29', '2007-09-30'],
dtype='datetime64[ns]', length=153, freq='D')
有没有办法做到这一点?
背景:
我一直在寻找解决方案:Python pandas dataframe sort by specific datetime
我的替代主意是每年制作一个口罩,其中包含我需要的天数范围。这是代码:
liste = []
for i in range (1,zeitspanne + 1):
#----------------------------------------------------------
# Bestimme aus Basis des ersten und letzten Jahres im Datensatz das exakte Start und Endatum des Datensatzes
startdatum = (str(auskunft_ende_daten - zeitspanne2)) + '-11-01'
enddatum = (str(auskunft_ende_daten - zeitspanne2 + 1)) + '-02-28'
# Bilde eine Range zwischen dem ersten und letzten Datum, die alle Tage beinhaltet, die seitdem vergangen sind
mask2 = pd.date_range(startdatum, end=enddatum, freq='1D')
zeitspanne2 -= 1
liste.append(mask2)
因此,我得到了2005、2006、2007等的DatetimeIndex,范围是从05-01到09-30。然后,将它们添加到包含所有蒙版的列表中。但是问题在于,一年中的任何掩码都是列表中的子数组。所以我用了..
liste = [item for sub_list in liste for item in sub_list]
..将所有子数组放入一个大数组中,但是datetime格式丢失,我最终得到:
[Timestamp('1951-05-01 00:00:00', freq='D'), Timestamp('1951-05-02 00:00:00', freq='D'), Timestamp('1951-05-03 00:00:00', freq='D'),...]
有什么主意吗?