嗨,请帮助解决数据框问题。
我正在尝试从数据框中选择带日期的行,并为with语句选择如下。
我在做什么错了?
startDate = '2019-01-01 00:00:00'
endDate = '2019-01-31 00:00:00'
mask = (df['date'] <= endDate) & (df['date'] >= starDate)
当我打印df.loc [mask]时,它不包括endDate,即使我很难说<=。是的,它在数据集中。
答案 0 :(得分:0)
如果要包括1/31中的数据,则应将掩码设置为当天的最后一秒。像
endDate = '2019-01-31 23:59:59'
或将其设置为第二天的开始
endDate = '2019-02-01 00:00:00'
并将您的蒙版更改为
mask = (df['date'] < endDate) & (df['date'] >= starDate)
答案 1 :(得分:0)
尝试:
mask = df.date.isin(pd.date_range(start='2019-01-01 00:00:00', end='2019-01-31 00:00:00'))
或
mask = df.date.isin(pd.date_range(start=startDate, end=endDate))
哪个胜过:
Out[73]:
2018-03-31 False
2018-04-30 False
2018-05-31 False
2018-06-30 False
2018-07-31 False
2018-08-31 False
2018-09-30 False
2018-10-31 False
2018-11-30 False
2018-12-31 False
2019-01-31 True
2019-02-28 False
2019-03-31 False
2019-04-30 False
Freq: M, Name: date, dtype: bool