这是我的示例代码:
q=pd.date_range('05/13/2019',periods=100, freq='B')
很显然,它将列出从2019年5月13日起的100个工作日,没有星期六和星期日。但是,在某些亚洲国家,他们确实在星期六工作。 我怎样才能解决这个问题 ?因此结果应该是从2019年5月13日起100天,并且没有星期日。
答案 0 :(得分:1)
尝试执行两个date_range
,然后从第一个中删除星期日:
>>> q = pd.date_range('05/13/2019', periods=100, freq='D')
>>> q2 = pd.date_range('05/13/2019',periods=100, freq='W')
>>> q[~q.isin(q2)]
DatetimeIndex(['2019-05-13', '2019-05-14', '2019-05-15', '2019-05-16',
'2019-05-17', '2019-05-18', '2019-05-20', '2019-05-21',
'2019-05-22', '2019-05-23', '2019-05-24', '2019-05-25',
'2019-05-27', '2019-05-28', '2019-05-29', '2019-05-30',
'2019-05-31', '2019-06-01', '2019-06-03', '2019-06-04',
'2019-06-05', '2019-06-06', '2019-06-07', '2019-06-08',
'2019-06-10', '2019-06-11', '2019-06-12', '2019-06-13',
'2019-06-14', '2019-06-15', '2019-06-17', '2019-06-18',
'2019-06-19', '2019-06-20', '2019-06-21', '2019-06-22',
'2019-06-24', '2019-06-25', '2019-06-26', '2019-06-27',
'2019-06-28', '2019-06-29', '2019-07-01', '2019-07-02',
'2019-07-03', '2019-07-04', '2019-07-05', '2019-07-06',
'2019-07-08', '2019-07-09', '2019-07-10', '2019-07-11',
'2019-07-12', '2019-07-13', '2019-07-15', '2019-07-16',
'2019-07-17', '2019-07-18', '2019-07-19', '2019-07-20',
'2019-07-22', '2019-07-23', '2019-07-24', '2019-07-25',
'2019-07-26', '2019-07-27', '2019-07-29', '2019-07-30',
'2019-07-31', '2019-08-01', '2019-08-02', '2019-08-03',
'2019-08-05', '2019-08-06', '2019-08-07', '2019-08-08',
'2019-08-09', '2019-08-10', '2019-08-12', '2019-08-13',
'2019-08-14', '2019-08-15', '2019-08-16', '2019-08-17',
'2019-08-19', '2019-08-20'],
dtype='datetime64[ns]', freq=None)
答案 1 :(得分:1)
您可以使用.bdate_range
方法和'C'
(自定义)频率进行操作。然后我们在周膜中传递想要的东西
import pandas as pd
weekmask = 'Mon Tue Wed Thu Fri Sat'
pd.bdate_range(start="11-May-2019", periods=10, freq='C', weekmask=weekmask)
输出:
DatetimeIndex(['2019-05-11', '2019-05-13', '2019-05-14', '2019-05-15',
'2019-05-16', '2019-05-17', '2019-05-18', '2019-05-20',
'2019-05-21', '2019-05-22'],
dtype='datetime64[ns]', freq='C')
如您所见,其中不包括5月12日至19日(星期日)! :)