パンダセットとドッキングします

♪the astropy.timeseries package is not the only package to provide functionality related to time series. Another notable package is pandas これは1つの pandas.DataFrame 級友たち。その主な利点は astropy.timeseries 天文研究の背景には以下の点がある。

  • 時間列は一つです Time オブジェクトは、非常に高精度な時間表示をサポートし、異なる時間スケールやフォーマット(例えば、ISO 8601タイムスタンプ、儒略日付など)間での変換を容易にする。

  • データ列は Quantity 単位付きの対象。

  • ♪the BinnedTimeSeries クラスは幅可変のタイムボックスを含む.

  • 一般的な時系列ファイルフォーマットのための内蔵リーダと、リーダ/ライタをカスタマイズする能力とがある。

しかし場合によってはパンダを使って DataFrame オブジェクトは意味があるかもしれないので,変換/スレーブに変換する方法を提供する. DataFrame 物体です。

例を引く

簡明な例を考えると、この例は DataFrame

>>> import pandas
>>> import numpy as np
>>> df = pandas.DataFrame()
>>> df['a'] = [1, 2, 3]
>>> times = np.array(['2015-07-04', '2015-07-05', '2015-07-06'], dtype=np.datetime64)
>>> df.set_index(pandas.DatetimeIndex(times), inplace=True)
>>> df
    a
2015-07-04  1
2015-07-05  2
2015-07-06  3

We can convert this to an astropy TimeSeries using from_pandas():

>>> from astropy.timeseries import TimeSeries
>>> ts = TimeSeries.from_pandas(df)
>>> ts
<TimeSeries length=3>
             time               a
            object            int64
----------------------------- -----
2015-07-04T00:00:00.000000000     1
2015-07-05T00:00:00.000000000     2
2015-07-06T00:00:00.000000000     3

変換しています DataFrame ご利用いただけます to_pandas()

>>> ts['b'] = [1.2, 3.4, 5.4]
>>> df_new = ts.to_pandas()
>>> df_new
            a    b
time
2015-07-04  1  1.2
2015-07-05  2  3.4
2015-07-06  3  5.4

時間列に欠落している値をサポートし、パンダのNATオブジェクトに正しく変換する:

>>> ts.time[2] = np.nan
>>> ts
<TimeSeries length=3>
             time               a      b
            object            int64 float64
----------------------------- ----- -------
2015-07-04T00:00:00.000000000     1     1.2
2015-07-05T00:00:00.000000000     2     3.4
                           --     3     5.4
>>> df_missing = ts.to_pandas()
>>> df_missing
           a    b
time
2015-07-04  1  1.2
2015-07-05  2  3.4
NaT         3  5.4