1. ホーム
  2. python

パンダです。2つの日付カラムを引き算して、結果を整数にする

2023-11-25 20:20:58

質問

Pandasのデータフレームに日付の列が2つあります。

ある列から別の列を引き、その結果が日数の差であることを知りたいのです。 整数として .

データを覗いてみると

df_test.head(10)
Out[20]: 
  First_Date Second Date
0 2016-02-09  2015-11-19
1 2016-01-06  2015-11-30
2        NaT  2015-12-04
3 2016-01-06  2015-12-08
4        NaT  2015-12-09
5 2016-01-07  2015-12-11
6        NaT  2015-12-12
7        NaT  2015-12-14
8 2016-01-06  2015-12-14
9        NaT  2015-12-15

差分で無事に新しいカラムが作成できました。

df_test['Difference'] = df_test['First_Date'].sub(df_test['Second Date'], axis=0)
df_test.head()         
Out[22]: 
  First_Date Second Date  Difference
0 2016-02-09  2015-11-19     82 days
1 2016-01-06  2015-11-30     37 days
2        NaT  2015-12-04         NaT
3 2016-01-06  2015-12-08     29 days
4        NaT  2015-12-09         NaT

しかし、結果の数値版を取得することができません。

df_test['Difference'] = df_test[['Difference']].apply(pd.to_numeric)     

df_test.head()
Out[25]: 
  First_Date Second Date    Difference
0 2016-02-09  2015-11-19  7.084800e+15
1 2016-01-06  2015-11-30  3.196800e+15
2        NaT  2015-12-04           NaN
3 2016-01-06  2015-12-08  2.505600e+15
4        NaT  2015-12-09           NaN

どのように解決するのですか?

どうでしょう。

df_test['Difference'] = (df_test['First_Date'] - df_test['Second Date']).dt.days

この場合、差分は int 欠損値がない場合 ( NaT ) と float があれば

Pandasには豊富なドキュメントがあり 時系列/日付機能 時間差分