![](/img/trans.png)
[英]Python Pandas dataframe: For each month of the year, add the date with last day in the month to an index if month not present, or remove duplicates
[英]Print date of last Tuesday of each month of next year using Python
如何使用Python打印明年的每个月的最后一个星期二的日期。
例如,输出的第一行将是:30 / Jan / 2018
我不想只显示前三个字符来表示月份的全名!
目前,我已经弄清楚如何获得明年的成绩:
import datetime
now = datetime.datetime.now()
next_year = now.year + 1
谁能帮忙吗?
日历模块非常适合:
您可以使用日历。 month_abbr ,是您想要的一系列缩写月份。
week
是一个数组,表示从星期一开始的星期几,因此星期二将是week[1]
。
import calendar
import datetime
now = datetime.datetime.now()
next_year = now.year + 1
for month in range(1, 13):
last_tuesday = max(week[1] for week in calendar.monthcalendar(next_year, month))
print('{}/{}/{}'.format(last_tuesday, calendar.month_abbr[month], next_year))
输出:
30/Jan/2018
27/Feb/2018
27/Mar/2018
24/Apr/2018
29/May/2018
26/Jun/2018
31/Jul/2018
28/Aug/2018
25/Sep/2018
30/Oct/2018
27/Nov/2018
25/Dec/2018
我还建议熊猫DateOffset对象LastWeekOfMonth
。
描述每月的最后一周中的每月日期,例如“每月的最后一个星期二”
from pandas.tseries.offsets import LastWeekOfMonth
def last_tues(year):
return (pd.date_range('1/1/' + str(year), periods=12, freq='M')
- LastWeekOfMonth(n=1, weekday=1)).strftime('%d/%b/%Y'))
last_tues(2018)
Out[31]:
array(['30/Jan/2018', '27/Feb/2018', '27/Mar/2018', '24/Apr/2018',
'29/May/2018', '26/Jun/2018', '26/Jun/2018', '28/Aug/2018',
'25/Sep/2018', '30/Oct/2018', '27/Nov/2018', '25/Dec/2018'],
dtype='<U11')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.