Python数据框屏蔽

时间:2019-05-13 19:59:11

标签: python pandas dataframe

嗨,请帮助解决数据框问题。

我正在尝试从数据框中选择带日期的行,并为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,即使我很难说<=。是的,它在数据集中。

2 个答案:

答案 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