【问题标题】:Pandas using Datetimeindex and locPandas 使用 Datetimeindex 和 loc
【发布时间】:2021-05-20 12:56:06
【问题描述】:

我使用loc 来获取特定条件下的索引。然后我获取这些索引的时间增量并尝试使用这两个索引再次访问我的数据帧。我收到以下错误:

“无法转换 到时间戳"

我的代码:

idx_open = df.loc[(df.Status == 'SR_OPEN')&(df.count_open == 1)&(df.count_close == 0)].index
n = 100
window = pd.Timedelta('15min')

begin = idx_open[n:n+1]
begin_1 = begin - window
begin_2 = begin + window
df.loc[begin_1:begin_2]

【问题讨论】:

  • 我假设begin 应该是时间戳;那你为什么不接受begin = idx_open[n]
  • 实际上,这非常有效,也让我的代码更短了一些。谢谢!

标签: python pandas datetime timedelta


【解决方案1】:

如果没有更多信息,这似乎是一个类型问题。尝试投下你的日期:

begin_1 = pd.to_datetime(begin) - window
begin_2 = pd.to_datetime(begin) + window
df.loc[begin_1:begin_2]

【讨论】:

  • 我不知何故需要将开始转换为时间戳。使用begin_1 = pd.to_datetime(begin) - window 仍然有 DatetimeIndex 有 dtype='datetime64[ns]'
  • 然后,尝试使用 pd.Timestamp(begin)。在此处查看选项:pandas.pydata.org/pandas-docs/stable/reference/api/…
猜你喜欢
  • 2018-08-18
  • 2019-01-28
  • 1970-01-01
  • 2014-08-17
  • 2016-10-21
  • 1970-01-01
  • 2019-06-01
  • 2018-10-25
  • 1970-01-01
相关资源
最近更新 更多