- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在传递 datetime
时遇到问题进入Pandas.Series.asof
:
def valueAsOf(self, date):
if type(date) is str:
return time.strptime(date, '%Y%m%d')
return self.__series.index.asof(date)
然后出现如下错误
Traceback (most recent call last):
File "/Users/x/test.py", line 106, in <module>
print someTs.series.asof('20150101')
File "/Users/x/anaconda/envs/test/lib/python2.7/site-packages/pandas/core/series.py", line 2460, in asof
if where < start:
File "pandas/tslib.pyx", line 836, in pandas.tslib._Timestamp.__richcmp__ (pandas/tslib.c:15612)
TypeError: Cannot compare type 'Timestamp' with type 'struct_time'
目前pandas.Series
的索引是<type 'time.struct_time'>
转换date
会不会解决问题?来自 struct_time
至 Timestamp
?如果可以,如何实现?
我尝试转换 date
到 datetime
对象,但仍然收到相同的错误消息,即使 type(dt)
显示其 <type 'datetime.datetime'>
dt = datetime.fromtimestamp(mktime(date))
return self.__series.index.asof(dt)
最佳答案
Pandas 时间序列应该总是有一个 DatetimeIndex
类型的索引。您发布的 TypeError
,如果系列索引是 dtype object
的普通 Index
包含 time.struct_time
,则可以重现。
例如,这会重现 TypeError:
import datetime as DT
import time
import numpy as np
import pandas as pd
x = pd.date_range('2015-1-1', '2015-1-5', freq='D')
index = [date.timetuple() for date in x.to_pydatetime()]
ts = pd.Series(np.arange(len(index)), index=index)
try:
print(ts.asof('20150101'))
except TypeError as err:
print(err)
产量
Cannot compare type 'Timestamp' with type 'struct_time'
可以通过将 ts.index
转换为 DatetimeIndex
来解决此问题:
ts.index = pd.to_datetime([DT.datetime.fromtimestamp(time.mktime(item))
for item in ts.index])
然后
print(ts.asof('20150101'))
打印与日期 20150101
关联的 ts
的值:
0
更好的是,不要使用时间元组。将日期序列转换为DatetimeIndex 越早越好:
In [59]: pd.to_datetime(['20150101'])
Out[59]: DatetimeIndex(['2015-01-01'], dtype='datetime64[ns]', freq=None, tz=None)
关于Python Pandas.Series.asof : Cannot compare type 'Timestamp' with type 'struct_time' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32927502/
我有两个 pandas 数据框 X 和 Y,每个都包含过去一个月的日内价格和时间数据。我想在 X 上运行 Y 的连接,即每次我们看到 X 的更新时我们都采用 Y 的现行价格。我想运行日内分析(因为隔夜
我已经阅读了 Pandas 的文档。有一个有用的函数叫做 merge_asof这似乎将两个数据帧与靠近的行合并在一起。但我不知道是什么asof方法。是吗as of ?或者它是某种东西的缩写? http
我希望做一些类似 Pandas 的事情 merge_asof 或 QuestDB 的 ASOF JOIN 在 Julia 。 至关重要的是,我还需要应用分组操作 . 我很乐意使用 Julia 的任何
我有每个实体的时间序列数据: id event_date value 1 2013-12-21 3.82 1 2013-12-22 2.47 1 2013-12-25 2.13
我有一大堆时间间隔不规则的数据帧。 我想创建一个新的 data.frame 并将其他 data.frame 加入其中,对于加入的每个 data.frame,从新的 data.frame 中选取最新的值
我有两个数据框,我希望将它们连接在一起,其中左侧数据框的信息索引为(日期,ID),右侧数据框的信息索引为(期间,ID),其中期间为年月。 我最终对左帧按 ID 进行分组,迭代组,在右帧上选择相同的组,
aj[`time`sym;trade;quote] 将每笔交易与之前的报值(value)连接起来。 我想进行相同的连接,但是是在下一个引用值而不是前一个值上进行连接。 我怎样才能实现这个目标? 最佳答
我见过这个问题被问过几次,但没有答案。简短版本: 我有一个带有两级MultiIndex索引的pandas DataFrame;两个级别都是整数。如何在此 DataFrame 上使用 .asof()?
kdb+ 有一个 aj通常用于沿时间列连接表的函数。 这是一个例子,我有交易和报价表,我得到了每笔交易的现行报价。 q)5# t time sym price size ------
我对excel一无所知,我想知道是否有一种方法可以将q-coding中的asof join语句转换为使用excel公式的语句 :update string issueSeries from aj[`s
我在传递 datetime 时遇到问题进入Pandas.Series.asof : def valueAsOf(self, date): if type(date) is str:
如何使用Series.asof函数?我传入了一个 datetime 对象 datetime.strptime('20150101', '%Y%m%d'),但为什么会报错 File "/Users/
我是一名优秀的程序员,十分优秀!