python - Panda 运行时警告无法将类型 'Timestamp' 与类型 'str' 进行比较,无法比较的对象的排序顺序未定义

标签 python pandas computational-finance

我目前正在为 coursera 计算金融做家庭作业 2。

执行这一行时:

ep.eventprofiler(df_events, d_data, i_lookback=20, i_lookforward=20,
            s_filename=report_filename, b_market_neutral=True, b_errorbars=True,
            s_market_sym='SPY')

我得到错误:

anaconda/lib/python2.7/site-packages/pandas/indexes/base.py:2397: RuntimeWarning: Cannot compare type 'Timestamp' with type 'str', sort order is undefined for incomparable objects
  return this.join(other, how=how, return_indexers=return_indexers)

创建 pdf 文件,显示发生的事件数但实际上不绘制事件。我不确定为什么会这样。我正在使用 Pandas 0.18.0

有什么想法吗?感谢您的帮助。

df_events.dtypes 示例:

ALTR    float64
ALXN    float64
AMAT    float64
AMD     float64
AMGN    float64
AMP     float64
AMT     float64
         ...
WDC     float64
WEC     float64
WFC     float64
WFM     float64
WHR     float64
WIN     float64
WLP     float64
WM      float64
WMB     float64
WMT     float64
XLNX    float64
XOM     float64
XRAY    float64
XRX     float64
XYL     float64
YHOO    float64
YUM     float64
ZION    float64
ZMH     float64
SPY     float64
dtype: object

这是 d_data.dtypes 日志示例:

           YHOO    YUM   ZION    ZMH     SPY
2008-01-02 16:00:00  23.72  37.88  45.29  66.29  144.93
2008-01-03 16:00:00  23.84  37.35  44.38  66.36  144.86
2008-01-04 16:00:00  23.16  36.82  42.40  66.50  141.31
2008-01-07 16:00:00  23.18  37.68  43.28  68.66  141.19

我明白了

 d_data.dtypes
*** AttributeError: 'dict' object has no attribute 'dtypes'

当我尝试打印出 d_data 数据类型时。

最佳答案

问题出在线路上:

df_rets = df_rets - df_rets[s_market_sym]

在这两行中:

if b_market_neutral == True:
    df_rets = df_rets - df_rets[s_market_sym]
    del df_rets[s_market_sym]
    del df_events[s_market_sym]

eventprofiler(...) 函数中。坦率地说,我认为这条线是一个错误,它应该作为评论,至少可以说——因为背后的逻辑逃避了我的理解。其他都还好。

如果您将参数 b_market_neutral 设置为 False,它会给您一个漂亮的图表,但在计算平均返回时也会考虑 SPY 市场数据。因此,为了在计算平均值时使用“正确”逻辑,解决方法是注释此行并使用此修改重新编译 QSTK。

希望这对您有所帮助。

问候, 丹尼尔

关于python - Panda 运行时警告无法将类型 'Timestamp' 与类型 'str' 进行比较,无法比较的对象的排序顺序未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38950570/

相关文章:

python - 如何根据条件删除 pandas 值并相应地移动行

python - 在Python中实现热甲板插补

python - 如何删除重复条目

c++ - 用 C++ 计算债券到期 yield (YTM)

machine-learning - 超出样本定义

python - 如何在 Django 的表单文件字段中指定 "upload to"路径?

python - py2exe 错误处理重定向和弹出

python - PyLaTeX:pylatex.errors.CompilerError:未找到 LaTex 编译器

python - 沿着聚类图的特定轴添加带有索引特定数据的条形图

sql - pl/python 接收和输出一组行