且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

一个月的一周 pandas

更新时间:2023-02-10 12:57:58

请参阅此

See this answer and decide which week of month you want.

没有内置的内容,因此您需要使用apply进行计算.例如,对于一个简单的已经过去了多少个7天"度量.

There's nothing built-in, so you'll need to calculate it with apply. For example, for an easy 'how many 7 day periods have passed' measure.

data['wom'] = data[0].apply(lambda d: (d.day-1) // 7 + 1)

要更复杂(基于日历),请使用该答案中的功能.

For a more complicated (based on the calender), using the function from that answer.

import datetime
import calendar

def week_of_month(tgtdate):
    tgtdate = tgtdate.to_datetime()

    days_this_month = calendar.mdays[tgtdate.month]
    for i in range(1, days_this_month):
        d = datetime.datetime(tgtdate.year, tgtdate.month, i)
        if d.day - d.weekday() > 0:
            startdate = d
            break
    # now we canuse the modulo 7 appraoch
    return (tgtdate - startdate).days //7 + 1

data['calendar_wom'] = data[0].apply(week_of_month)