パンダ: 月単位の timedelta を計算する方法


次の関数を使用して、pandas DataFrame の 2 つの列間の時間差を月単位で計算できます。

 def month_diff(x, y):
    end = x. dt . to_period (' M '). view (dtype=' int64 ')
    start = y. dt . to_period (' M '). view (dtype=' int64 ')
    return end-start

次の例は、この関数を実際に使用する方法を示しています。

例: Pandas で月単位の Timedelta を計算する

次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' event ': ['A', 'B', 'C'],
                   ' start_date ': ['20210101', '20210201', '20210401'],
                   ' end_date ': ['20210608', '20210209', '20210801'] })

#convert start date and end date columns to datetime
df[' start_date '] = pd. to_datetime (df[' start_date '])
df[' end_date '] = pd. to_datetime (df[' end_date '])

#view DataFrame
print (df)

  event start_date end_date
0 A 2021-01-01 2021-06-08
1 B 2021-02-01 2021-02-09
2 C 2021-04-01 2021-08-01

ここで、 start_date 列end_date列の間の時間差 (月単位) を計算するとします。

これを行うには、まず次の関数を定義します。

 #define function to calculate time delta in months between two columns
def month_diff(x, y):
    end = x. dt . to_period (' M '). view (dtype=' int64 ')
    start = y. dt . to_period (' M '). view (dtype=' int64 ')
    return end-start

次に、この関数を使用して、 start_date 列end_date列の間の時間差を月単位で計算します。

 #calculate month difference between start date and end date columns
df[' month_difference '] = month_diff(df. end_date , df. start_date )

#view updated DataFrame
df

    event start_date end_date month_difference
0 A 2021-01-01 2021-06-08 5
1 B 2021-02-01 2021-02-09 0
2 C 2021-04-01 2021-08-01 4

Month_difference列には、 start_date 列end_date列の間の時間差 (月単位) が表示されます。

追加リソース

次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。

Pandas で列を DateTime に変換する方法
Pandas で DateTime を日付に変換する方法
Pandasで日付から月を抽出する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です