0

0.9.1以前のバージョンの新しいバージョンの Pandas (Python 2.7 の下) で特定のコードを実行できません。私が実行するコードは次のとおりです。

myfunc = lambda x: makeDfCurve(frame,x)
dates = Series(frame.index, index = frame.index) # new Time series filled temporarily 
# with dates taken from a certain dataframe 'frame' index
# and here's where the code crash:
frame['curve'] = dates.apply(myfunc) 

次のエラーが表示されます。

TypeError: ufunc 'subtract' は入力型に対してサポートされておらず、キャスト規則 'safe' に従って、サポートされている型に入力を安全に強制できませんでした

関数を再帰して、ラムダ定義の x パラメータとして渡された日付の一部が間違っているかどうかを確認しようとしましたが、いつでも正しい結果が得られました。ただし、この方法は機能しなくなり、その理由はわかりません。ご協力とご意見をいただければ幸いです。

ありがとう

PS実際には、さらに調査した後、次のように質問を編集したいと思います。

このエラーは、Pandas の新しいバージョンが原因です: TimeSeries のインデックスは「class 'pandas.lib.Timestamp'」タイプであるため、代わりに datetime オブジェクトが必要な関数に問題が発生します。

4

1 に答える 1

0

私は最終的に新しいバージョンのドキュメントをチェックすることで問題を解決しました.to_pydatetime()メソッドを使用して、関数で必要に応じて適切な日時オブジェクトのインデックス値を変換する方法が説明れています。

于 2012-11-21T17:03:47.790 に答える