首页 > 解决方案 > 基于日期熊猫数据框的子集

问题描述

我有一个日期列,在转换为日期时间后它看起来像这样:

 data['date']=pd.to_datetime(data[date])
 2018-07-20 00:00:00

当我尝试使用它进行子集化时:

 beg = datetime.datetime.strptime('2018-07-20', '%Y-%m-%d')
 end = datetime.datetime.strptime('2018-07-25', '%Y-%m-%d')
 data = data.loc[(data['date']>=beg) & (data['date']<=end)]

我收到此错误:

ValueError:无法使用多维键进行索引

有谁知道我做错了什么?

标签: pandasdatesubset

解决方案


一种解决方案是通过将该日期移动到数据框索引中来使用部分字符串索引。

MCVE:

df = pd.DataFrame(np.arange(100),index=pd.date_range('2010-01-01',periods=100, freq='45D'))
df.loc['2010-05-10':'2013-12-04']

输出:

             0
2010-05-16   3
2010-06-30   4
2010-08-14   5
2010-09-28   6
2010-11-12   7
2010-12-27   8
2011-02-10   9
2011-03-27  10
2011-05-11  11
2011-06-25  12
2011-08-09  13
2011-09-23  14
2011-11-07  15
2011-12-22  16
2012-02-05  17
2012-03-21  18
2012-05-05  19
2012-06-19  20
2012-08-03  21
2012-09-17  22
2012-11-01  23
2012-12-16  24
2013-01-30  25
2013-03-16  26
2013-04-30  27
2013-06-14  28
2013-07-29  29
2013-09-12  30
2013-10-27  31

推荐阅读