Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Pandas:TimeDeltaIndexからSeriesを作成し、結果のSeriesにインデックスを設定する方法

Pandasでは、to_series()メソッドを使うことで、TimeDeltaIndexからSeries(シリーズ)を作成できます。生成されるSeriesのインデックスは、indexパラメータで自由に設定することが可能です。

まず、必要なライブラリをインポートします。

import pandas as pd

次に、TimeDeltaIndexオブジェクトを作成します。timedelta形式のデータは「data」パラメータで指定しています。

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)

続いて、TimeDeltaIndexをSeriesに変換し、結果のSeriesに新しいインデックスを設定します。ここでは「index」パラメータに文字列のリストを渡して、インデックスを指定しています。

print("\nTimeDeltaIndex to series with new index...\n",
tdIndex.to_series(index=['Date1','Date2','Date3','Date4']))

to_series()メソッドのポイント

  • index:結果のSeriesに設定するインデックスを指定します。省略した場合は、元のTimeDeltaIndexのインデックスがそのまま引き継がれます。
  • name:結果のSeriesの名前を指定することもできます。
  • 変換後のSeriesのデータ型(dtype)は、元のTimeDeltaIndexと同じ timedelta64[ns] になります。

以下がサンプルコード全体です。

import pandas as pd

# TimeDeltaIndexオブジェクトを作成
# timedelta形式のデータは「data」パラメータで設定
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)

# TimeDeltaの各構成要素(日・時・分・秒など)からなる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に変換し、結果のSeriesにインデックスを設定
# 「index」パラメータでインデックスを指定
print("\nTimeDeltaIndex to series with new index...\n",
tdIndex.to_series(index=['Date1','Date2','Date3','Date4']))

出力

このコードを実行すると、次のような出力が得られます。

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 with new index...
Date1 10 days 05:02:00.000003010
Date2 0 days 22:39:19.999999
Date3 2 days 07:08:02.000045
Date4 0 days 21:15:45.999999
dtype: timedelta64[ns]

  1. Python Pandas:Indexオブジェクトから相対度数を取得する方法

    PandasのIndexオブジェクトから相対度数(出現割合)を求めるには、index.value_counts()メソッドを使用し、パラメータnormalizeをTrueに設定します。normalize=Trueを指定すると、各値の出現回数が全体の合計で正規化され、0〜1の範囲の相対度数として返されます。 必要なライブラリのインポート まず、必要なライブラリをインポートします。 import pandas as pd Pandasインデックスの作成 次に、PandasのIndexオブジェクトを作成します。 index = pd.Index([50, 10, 70, 110, 90, 50, 1

  2. Python Pandas – merge()で2つのDataFrameからデカルト積(直積)を作成する方法

    PandasでDataFrame同士をマージするにはmerge()関数を使用します。両方のDataFrameに対してデカルト積(直積)を実行したい場合は、merge()関数の「how」パラメータに以下のように指定します。how = crossデカルト積とはデカルト積(直積)とは、一方のDataFrameの各行と、もう一方のDataFrameのすべての行を組み合わせた結果を指します。例えば、4行のDataFrameと3行のDataFrameをクロス結合すると、4 × 3 = 12行の結果が得られます。Pandasライブラリのインポートまず、エイリアス(別名)を付けてPandasライブラリをインポ