当前位置: 首页 > 面试题库 >

python pandas dataframe按日期条件切片

霍锦
2023-03-14
问题内容

我能够使用python datetime对象读取和切片pandas数据帧,但是我被迫仅使用索引中的 现有日期 。例如,这有效:

>>> data
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 252 entries, 2010-12-31 00:00:00 to 2010-04-01 00:00:00
Data columns:
Adj Close    252  non-null values
dtypes: float64(1)

>>> st = datetime.datetime(2010, 12, 31, 0, 0)
>>> en = datetime.datetime(2010, 12, 28, 0, 0)

>>> data[st:en]
            Adj Close
Date                 
2010-12-31     593.97
2010-12-30     598.86
2010-12-29     601.00
2010-12-28     598.92

但是,如果我使用DF中不存在的开始或结束日期,则会收到python KeyError。

我的问题:如何查询数据框对象的日期范围?即使DataFrame中没有开始日期和结束日期。熊猫是否允许基于范围的切片?

我正在使用熊猫0.10.1版


问题答案:

用于searchsorted先找到最近的时间,然后用它来切片。

In [15]: df = pd.DataFrame([1, 2, 3], index=[dt.datetime(2013, 1, 1), dt.datetime(2013, 1, 3), dt.datetime(2013, 1, 5)])

In [16]: df
Out[16]: 
            0
2013-01-01  1
2013-01-03  2
2013-01-05  3

In [22]: start = df.index.searchsorted(dt.datetime(2013, 1, 2))

In [23]: end = df.index.searchsorted(dt.datetime(2013, 1, 4))

In [24]: df.iloc[start:end]
Out[24]: 
            0
2013-01-03  2


 类似资料:
  • 本文向大家介绍Nginx日志按日期切割详解(按天切割),包括了Nginx日志按日期切割详解(按天切割)的使用技巧和注意事项,需要的朋友参考一下 实现需求 本文实现的功能是在吗每天凌晨00:00把前一天的Nginx日志access.log重命名为access-xxxx-xx-xx.log格式,例如:access-2016-10-01.log,下面话不多说了,来看看详细的实现方法吧。 实现方法 脚本

  • 问题内容: 我正在尝试使用以下代码从表中提取“体验”对象列表。每种体验都有一个from 列和一个to 列,我只想在今天的日期介于from和to之间的地方拉行。 我正在使用从Hibernate运行的JPA 2.0。 我的问题是,显然不允许我传递Date对象。 我的问题有更好的解决方案吗? 问题答案: 您可以将其作为参数传递: 请注意,在这种情况下,您需要指定所需的时间类型。 您也可以依靠数据库的当前

  • 问题内容: 我有一个“事件日历”表,我想选择日期等于或大于今天的事件。当我使用以下SELECT语句时,它仅在将来检索事件(> NOW()): 我将如何选择今天或将来的所有事件? 谢谢 问题答案: 您正在寻找: 或者:

  • 慕课堂在上课前必须先备课,进入课堂---点击【备课区】--【添加备课】,设置备课使用日期(即上课日期),保存,点击【添加活动】:

  • 我试图重写并为页脚返回不同的视图类型,但在函数中进行整数比较失败: 此图像显示了一个调试会话,其中输入为21,私有列表的大小为21,但是当我按下“step over”时,会跳过条件代码。 如果两个整数相等,为什么返回false? 我在运行之前清理并重建了我的项目。 更新: 当整数被硬编码时,它可以工作: 这是完整的适配器:https://gist.github.com/fergusom/79C6D

  • 问题内容: 我想按日期订购。 例如 我已经尝试过: 伯,这是行不通的。 我得到这个代替: 你能帮我吗? 问题答案: 如果要按日期排序, 请将其存储为日期而不是字符串。 除非您的日期字符串的格式为,否则它不会按您希望的顺序排序。 数据库可以按原样进行足够的工作,而无需人们加倍努力,因此,您应该尽可能地避免我喜欢的 SQL体操。 将其存储为日期,然后(如果需要)使用日期函数以形式获取它。 这样会比您尝