2017-03-09 2 views
-1

の違いは何ですか:私のコードは次のアサート時に破壊されpandas.Timeseriesとpandas.Series

assert(type(series_one) == pandas.TimeSeries) 

私がそれを渡すタイプは「pandas.core.series.Series」であると思われます、このシリーズのインデックスは 'pandas.tseries.index.DatetimeIndex'です。

どうすればこの問題を解決できますか?

+0

あなたの質問は、時系列またはシリーズであるかどうかを判断し、そのインデックスがdatetimeindexである理由を尋ねることを尋ねています。なぜこれが驚きでしょうか? – EdChum

答えて

0

ここには2つの混乱があります。まず、pandas.Seriesは、インデックスを有し、を有する。インデックスのタイプは、CategoricalIndex,MultiIndexTimeDeltaIndexDatetimeIndexなどさまざまです。

第2に、アサーションでは、インデックスではなくシリーズ全体をチェックします。また、多くのためhereを参照して、型チェックのためにisinstanceを使用することをお勧めします。

assert(isinstance(series_one, pandas.Series)) 

はシリーズをチェックするために、あなたはpandas.TimeSeriesを使用しますが、これは減価償却されるとpandas.Seriesに置き換えてください:

# creating pandas.TimeSeries 
dummy = pd.TimeSeries([1,2,3]) 
FutureWarning: TimeSeries is deprecated. Please use Series 

今後の警告は、TimeSeriesが今後使用されないように自動的に表示されます。

要約すると、シリーズ全体またはシリーズのインデックスのいずれかをアサーションでチェックしたいものを頭に入れてください。シリーズを確認する場合は、TimeSeriesではなくpandas.Seriesを使用してください。

関連する問題