无法过滤熊猫中的日期

时间:2018-09-26 12:07:23

标签: python pandas

下面是一些教程,我试图通过下拉菜单中选择的日期来过滤数据。我已经将日期列设置为索引,并测试了所有值的类型都为datetime,但是我收到以下错误:

TypeError("'<' not supported between instances of 'str' and 'datetime.date'",)

数据:

CustomerName,OrderDate,Item,ItemSKU,Price,Quantity,Channel,Total
Joe,Blog,26/09/2018,Rocks,Rock001,10.99,10,Amazon,100.99
Joe,Blog,26/08/2018,Rocks,Rock001,10.99,10,Amazon,100.99
Joe,Blog,26/07/2018,Rocks,Rock001,10.99,10,Amazon,100.99

代码: 从用户选择中返回年,月值

firstDayMonth = datetime.date(year, month, 1)
daysHolder = monthrange(year, month)
lastDayMonth = datetime.date(year, month, daysHolder[1])

df = pd.read_csv("C:/Users/User/Desktop/testData.csv")
gb = df.groupby(['Channel'])
Amz = gb.get_group('Amazon')
df = Amz .set_index(Amz ['OrderDate'])
df['OrderDate'] = df['OrderDate'].astype('datetime64[ns]')
newData = df.loc[firstDayMonth:lastDayMonth]

2 个答案:

答案 0 :(得分:1)

所以看来我只需要切换切片中日期的顺序即可。使用newData = df.loc[lastDayMonth:firstDayMonth]newData = df.loc[firstDayMonth:lastDayMonth]不起作用。我认为这是由于我的数据从最新日期到最旧的数据而下降。

答案 1 :(得分:0)

虽然确实将索引设置为OrderDate列,但在之前将其设置为日期时间。在将列用作索引之前,您可能需要更改类型,否则用loc进行索引将失败。