Oregin
「collection_date」の日付形式が、「publishedAt」と異なっていたので、統一する処理を作りました。この処理を実施することで、「collection_date」、「publishedAt」が同様に扱えるようになり、動画の投稿日からデータレコードの収集日までの期間などを考慮するときに使えると思います。
ご参考までに掲載させていただきます。
# データの読込 import pandas as pd train = pd.read_csv('./input/train_data.csv') test = pd.read_csv('./input/test_data.csv')
# [publishedAt]と同じ形式に変換する関数 def change_to_Date(train,test_df,input_column_name,output_column_name): train[output_column_name] = train[input_column_name].map(lambda x: x.split('.')) test[output_column_name] = test[input_column_name].map(lambda x: x.split('.')) train[output_column_name] = train[output_column_name].map(lambda x: '20'+x[0]+'-'+x[2]+'-'+x[1]+'T00:00:00.000Z') test[output_column_name] = test[output_column_name].map(lambda x: '20'+x[0]+'-'+x[2]+'-'+x[1]+'T00:00:00.000Z')
#[collection_date]を[publishedAt]と同じ形式に変換 change_to_Date(train,test,'collection_date','collection_date')
上記の処理を実施することで、以下のとおり、チュートリアルで実施されている「publishedAt」を文字列から数値に変換する処理が、「collection_date」にも使えるようになります。
train['publishedAt'] = pd.to_datetime(train['publishedAt']).map(pd.Timestamp.to_julian_date) test['publishedAt'] = pd.to_datetime(test['publishedAt']).map(pd.Timestamp.to_julian_date) train['collection_date'] = pd.to_datetime(train['collection_date']).map(pd.Timestamp.to_julian_date) test['collection_date'] = pd.to_datetime(test['collection_date']).map(pd.Timestamp.to_julian_date)
train['publishedAt'].head()
0 2.455571e+06 1 2.456132e+06 2 2.454308e+06 3 2.453506e+06 4 2.454353e+06 Name: publishedAt, dtype: float64
test['publishedAt'].head()
0 2.454370e+06 1 2.457536e+06 2 2.456272e+06 3 2.455985e+06 4 2.454429e+06 Name: publishedAt, dtype: float64
train['collection_date'].head()
0 2458880.5 1 2458887.5 2 2458862.5 3 2458839.5 4 2458856.5 Name: collection_date, dtype: float64
test['collection_date'].head()
0 2458856.5 1 2458888.5 2 2458882.5 3 2458881.5 4 2458858.5 Name: collection_date, dtype: float64