Python Pandas入門:TimeDeltaIndexからSeriesを作成するto_series()メソッドの使い方
Pandasでは、to_series()メソッドを使うことで、TimeDeltaIndex(時間差インデックス)からSeriesを作成することができます。この記事では、その基本的な使い方をサンプルコードとともに解説します。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
TimeDeltaIndexオブジェクトの作成
次に、TimeDeltaIndexオブジェクトを作成します。「data」パラメータにtimedelta形式のデータを指定します。
tdIndex = pd.TimedeltaIndex(data =['10 day 5h 2 min 3us 10ns', '+22:39:19.999999', '2 day 4h 03:08:02.000045', '+21:15:45.999999'])
ここで指定している文字列は、それぞれ以下のような時間差を表しています。
- '10 day 5h 2 min 3us 10ns':10日5時間2分3マイクロ秒10ナノ秒
- '+22:39:19.999999':22時間39分19.999999秒
- '2 day 4h 03:08:02.000045':2日と4時間3分8.000045秒(合計2日7時間8分2.000045秒)
- '+21:15:45.999999':21時間15分45.999999秒
TimeDeltaIndexをSeriesに変換する
to_series()メソッドを呼び出すだけで、TimeDeltaIndexをSeriesに変換できます。
print("\nTimeDeltaIndex to series...\n", tdIndex.to_series())
完全なサンプルコード
以下に、これまでの手順をまとめた完全なコード例を示します。
import pandas as pd
# TimeDeltaIndexオブジェクトを作成
# 「data」パラメータでtimedelta形式のデータを設定
tdIndex = pd.TimedeltaIndex(data =['10 day 5h 2 min 3us 10ns', '+22:39:19.999999',
'2 day 4h 03:08:02.000045', '+21:15:45.999999'])
# TimedeltaIndexを表示
print("TimedeltaIndex...\n", tdIndex)
# TimeDeltasの各構成要素をDataFrameとして返す
print("\nThe Dataframe of the components of TimeDeltas...\n", tdIndex.components)
# TimeDeltaIndexをdatetime.timedeltaオブジェクトのndarrayとして返す
print("\nReturn TimeDeltaIndex as object ndarray of datetime.datetime objects...\n",
tdIndex.to_pytimedelta())
# TimeDeltaIndexをSeriesに変換
print("\nTimeDeltaIndex to series...\n", tdIndex.to_series())
実行結果
上記のコードを実行すると、次のような出力が得られます。
TimedeltaIndex... TimedeltaIndex(['10 days 05:02:00.000003010', '0 days 22:39:19.999999', '2 days 07:08:02.000045', '0 days 21:15:45.999999'], dtype='timedelta64[ns]', freq=None) The Dataframe of the components of TimeDeltas... days hours minutes seconds milliseconds microseconds nanoseconds 0 10 5 2 0 0 3 10 1 0 22 39 19 999 999 0 2 2 7 8 2 0 45 0 3 0 21 15 45 999 999 0 Return TimeDeltaIndex as object ndarray of datetime.datetime objects... [datetime.timedelta(days=10, seconds=18120, microseconds=3) datetime.timedelta(seconds=81559, microseconds=999999) datetime.timedelta(days=2, seconds=25682, microseconds=45) datetime.timedelta(seconds=76545, microseconds=999999)] TimeDeltaIndex to series... 10 days 05:02:00.000003010 10 days 05:02:00.000003010 0 days 22:39:19.999999 0 days 22:39:19.999999 2 days 07:08:02.000045 2 days 07:08:02.000045 0 days 21:15:45.999999 0 days 21:15:45.999999 dtype: timedelta64[ns]
まとめ
to_series()メソッドを使うことで、TimeDeltaIndexを簡単にSeriesへ変換できます。変換後のSeriesは元のTimeDeltaIndexの値をインデックスとして持ち、dtypeは「timedelta64[ns]」になります。また、componentsプロパティを使えば日数・時間・分などの構成要素をDataFrameとして確認でき、to_pytimedelta()メソッドを使えばPython標準のdatetime.timedeltaオブジェクトの配列に変換できることも覚えておくと便利です。
-
【Python・Pandas】配列からマルチインデックスを作成する方法(MultiIndex.from_arrays)
Pandasでは、複数の配列(リスト)を組み合わせて階層的なインデックス(マルチインデックス)を簡単に作成できます。本記事では、MultiIndex.from_arrays()メソッドを使って、配列からマルチインデックスを生成する手順を解説します。1. 元となる配列を用意するまずは、マルチインデックスの第1レベルとなる「車種」の配列を作成します。car = [Audi, Lexus, Tesla, Mercedes, BMW, Toyota, Nissan, Bentley, Mustang]次に、第2レベルとなる「登録価格(Registration Price)」の配列を用意します。reg_
-
PythonとPandasのpipe()メソッドでパイプラインを作成する方法
Pandasでパイプラインを作成するには、pipe()メソッドを使用します。pipe()を使うことで、DataFrameに対して任意の関数を連続的に適用でき、データ処理の流れを簡潔かつ読みやすい形で記述できます。準備:pandasのインポートまず、必要なpandasライブラリをエイリアス付きでインポートします。import pandas as pdDataFrameの作成次に、サンプル用のDataFrameを作成します。dataFrame = pd.DataFrame( { Car: [BMW, Lexus, Audi, Mustang, Bentley, Jaguar],