Python 熊猫:如何创建一个包含月内每个工作日编号的新列?

Python 熊猫:如何创建一个包含月内每个工作日编号的新列?,python,pandas,dataframe,time-series,Python,Pandas,Dataframe,Time Series,有一个以datetime列为索引的数据帧 time open high low close weekday 2000-05-30 17:00:00 0.93020 0.93050 0.92970 0.92970 1 2000-05-30 18:00:00 0.92980 0.93000 0.92960 0.92960

有一个以datetime列为索引的数据帧

time                    open     high      low    close  weekday                                        
2000-05-30 17:00:00  0.93020  0.93050  0.92970  0.92970        1
2000-05-30 18:00:00  0.92980  0.93000  0.92960  0.92960        1
2000-05-30 19:00:00  0.92970  0.93050  0.92930  0.93050        1
我创建了新的专栏“weekday”,作为

df['weekday'] = df.index.dayofweek
如何创建一个新列,其中包含每个月内每个工作日的编号?
i、 e 2000-05-01是5月的第一个星期一,2000-05-08是5月的第二个星期一,等等。

如果您的时间列是日期时间数据类型,则

df['weekday'] = df['time'].dt.day_of_week
如果没有,那么先这样做

df['time'] = pd.to_datetime(df['time'])

只需要将天数除以7。 如果除法的余数大于0,则必须将1添加到除法结果中。
例如,2021年9月2日。把9除以7。除法的余数不是0。除法的结果是1。加1。因此,2020年9月2日是2月的第二个星期二。

mullinscr,我编辑了我的问题。df.index.day是月日(0-31)df.index.weekday是指你的一天是M-F还是S-U(0或1)df.index.dayofweek是指从周一(0)到周日(6)的天数。你的问题是“工作日”和“月日”