【问题标题】:Subsetting based on dates pandas dataframe基于日期熊猫数据框的子集
【发布时间】:2018-07-25 17:31:53
【问题描述】:

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

 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: 不能用多维键索引

有谁知道我做错了什么?

【问题讨论】:

  • 你能把df.columns打印到问题中吗
  • 这是一个非常大的数据集,所以 df.columns 会打印出很多变量名。'date' 在那里,但它的价值
  • 我的猜测是其中不止一个是date,这就是为什么你应该看看它。
  • 啊,我明白了。我会检查
  • 只有 1 个“日期”列

标签: pandas date subset


【解决方案1】:

一种解决方案是使用partial string indexing,将该日期移到数据框索引中。

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

【讨论】:

  • 啊,有趣的解决方案。我有点需要我的索引但是用于其他目的(我想我可以将当​​前索引变成一个变量)。
猜你喜欢
  • 2019-03-19
  • 2021-05-29
  • 1970-01-01
  • 1970-01-01
  • 2019-10-28
  • 2019-06-24
  • 2016-03-28
  • 2018-01-26
  • 2020-01-14
相关资源
最近更新 更多