DFタイムスタンプを含む:
0 2005-08-31 16:39:40
1 2005-12-28 16:00:34
2 2005-10-21 17:52:10
3 2014-01-28 12:23:15
4 2014-01-28 12:23:15
5 2011-02-04 18:32:34
6 2011-02-04 18:32:34
7 2011-02-04 18:32:34
各タイムスタンプから年を抽出し、DFに次のような追加の列を作成します。
0 2005-08-31 16:39:40 2005
1 2005-12-28 16:00:34 2005
2 2005-10-21 17:52:10 2005
3 2014-01-28 12:23:15 2014
4 2014-01-28 12:23:15 2014
5 2011-02-04 18:32:34 2011
6 2011-02-04 18:32:34 2011
7 2011-02-04 18:32:34 2011
明らかに、私はすべてのDFエントリを日付の最初の4文字を取り除いて処理することができます。これは非常に遅いです。これを実行するための高速のpython方法があるのかと思います。 DF = pd.to_datetime(DF、 '%Y-%m-%d%H:%M:%S')によって列を日時形式に変換できますが、次に、timetime.datetime.year(DF)を適用しても機能しません。また、タイムスタンプを月および年と月の組み合わせなどに解析する必要があります...よろしくお願いします。
各行に関数を適用する必要はありません year 属性にアクセスするために呼び出すことができる新しい datetime 属性があります。
In [35]:
df1['year'] = df1['timestamp'].dt.year
df1
Out[35]:
timestamp year
0 2005-08-31 16:39:40 2005
1 2005-12-28 16:00:34 2005
2 2005-10-21 17:52:10 2005
3 2014-01-28 12:23:15 2014
4 2014-01-28 12:23:15 2014
5 2011-02-04 18:32:34 2011
6 2011-02-04 18:32:34 2011
7 2011-02-04 18:32:34 2011
タイムスタンプがstrの場合、 pd.to_dateime
を使用してdatetime64に変換できます。
df['timestamp'] = pd.to_datetime(df['timestamp'])
上記のようにdt
を使用して、月およびその他の属性にアクセスできます。
0.15.0
より前のバージョンでは、以下を実行できます。
df1['year'] = df1['timestamp'].apply(lambda x: x.year)