在Python中根据一个以上的工作日名称选择数据

时间:2018-09-20 08:34:57

标签: python-3.x pandas

我正在尝试获取工作日(星期日和星期一)的数据,但这只给了我一天的数据。我可以从某人提出的问题中找到一个工作日名字的答案。

下面是代码:

 import pandas as pd
 df=pd.DataFrame({'CustomerID':[1,2,3,4,5,6,7,8,9,10],
 'PurchaseDate':['2007-5-7','2007-6-7','2007-7-7','2007-8-7','2007-9-9','2007-10-7',
    '2007-11-7','2007-12-7','2008-1-7','2008-2-7' ],
    'OrderQuantity':[1,1,1,1,1,1,1,1,1,1]})

df['PurchaseDate']=pd.to_datetime(df.PurchaseDate)
df.dtypes

df.PurchaseDate.dt.weekday_name.value_counts()  

df1=df[(df.PurchaseDate.dt.weekday_name==('Sunday' and 'Monday'))]

我得到的结果如下图:

enter image description here

我将如何获取星期日和星期一的数据?

1 个答案:

答案 0 :(得分:1)

如果需要weekday_name SundayMonday,请使用Series.isin-每个日期既不能是Sunday,也不能是Monday

df1=df[(df.PurchaseDate.dt.weekday_name.isin(['Sunday','Monday']))]
print (df1)
   CustomerID PurchaseDate  OrderQuantity
0           1   2007-05-07              1
4           5   2007-09-09              1
5           6   2007-10-07              1
8           9   2008-01-07              1

验证:

print (df.PurchaseDate.dt.weekday_name)
0       Monday
1     Thursday
2     Saturday
3      Tuesday
4       Sunday
5       Sunday
6    Wednesday
7       Friday
8       Monday
9     Thursday
Name: PurchaseDate, dtype: object