我需要用一个特定的格式来构造一个日期列表--月份日期,年份。
我已经创建了日期列表,但是当我尝试格式化它们时,我会得到两个日期的长列表,'May 05,2022'和'June 06,2022'如下所示:
['May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'June 06,2022', 'June 06,2022', 'June 06,2022', 'June 06,2022', 'June 06,2022', 'June 06,2022', 'June 06,2022', 'June 06,2022']我不知道是怎么回事,因为当我打印dates时,我得到了这个范围内所有日期的列表。我用来格式化数字的任何策略都会导致一个糟糕的列表(上面)。
from datetime import datetime
import pandas as pd
START_REPORTING = datetime(2022, 5, 15)
TODAY = datetime.today()
dates = pd.date_range(start=START_REPORTING ,end=TODAY)
list = []
for i in dates:
list.append(i.strftime('%B %m,%Y'))
print(list)
print(dates)
['May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'May 05,2022', 'June 06,2022', 'June 06,2022', 'June 06,2022', 'June 06,2022', 'June 06,2022', 'June 06,2022', 'June 06,2022', 'June 06,2022']
DatetimeIndex(['2022-05-15', '2022-05-16', '2022-05-17', '2022-05-18',
'2022-05-19', '2022-05-20', '2022-05-21', '2022-05-22',
'2022-05-23', '2022-05-24', '2022-05-25', '2022-05-26',
'2022-05-27', '2022-05-28', '2022-05-29', '2022-05-30',
'2022-05-31', '2022-06-01', '2022-06-02', '2022-06-03',
'2022-06-04', '2022-06-05', '2022-06-06', '2022-06-07',
'2022-06-08'],
dtype='datetime64[ns]', freq='D')发布于 2022-06-08 21:25:20
您可能希望使用格式字符串'%B %d, %Y',因为%m为您提供了带前导零的月份。
这应该是你想做的事:
dates.to_series().dt.strftime('%B %d, %Y').to_list()
# ['May 15, 2022', 'May 16, 2022', 'May 17, 2022', 'May 18, 2022', 'May 19, 2022', 'May 20, 2022', 'May 21, 2022', 'May 22, 2022', 'May 23, 2022', 'May 24, 2022', 'May 25, 2022', 'May 26, 2022', 'May 27, 2022', 'May 28, 2022', 'May 29, 2022', 'May 30, 2022', 'May 31, 2022', 'June 01, 2022', 'June 02, 2022', 'June 03, 2022', 'June 04, 2022', 'June 05, 2022', 'June 06, 2022', 'June 07, 2022', 'June 08, 2022']发布于 2022-06-08 21:39:16
您的日期格式转换为month_name month_number,年份。用%d替换%m应该有效。尝尝这个
for i in dates:
list.append(i.strftime('%B %m,%Y'))https://stackoverflow.com/questions/72552307
复制相似问题