2017-12-29 45 views
0

データフレームの1つの列にタイムスタンプのリスト(ミリ秒単位)を格納できます。私は次のコードでそれらを呼び出すことができます。タイムスタンプのリストを読み込み可能な形式に変換する(速い方法が必要)

dataframename['columnname'] 

は私のような何か与える:

0  1512734400000 

1  1512738000000 

2  1512741600000 

を...

498 1514527200000 

499 1514530800000 

私が読めるまでにそれらのすべてを変換したいですフォーマット。私は次のコードでそれを行うことができます:

for x in range(len(dataframename["columnname"])): 
     dataframename['columnname'][x] = datetime.datetime.fromtimestamp(dataframename['columnname'][x]/1000).strftime('%Y-%m-%d %H:%M:%S') 

しかし、これは時間がかかりすぎています。それを行うより速い方法がありますか?

質問にお答えいただいた方々にはありがとうございます。

答えて

1
import pandas as pd 
dataframename['date'] = pd.to_datetime(dataframename['columnname'], unit='ms') 

より多くの例

+0

ありがとう!それは完全に動作します!また、自分のタイムゾーンに合わせて調整したい場合は、データフレームの後に値を追加するだけです。 dataframename ['date'] = pd.to_datetime(dataframename ['columnname'] + 3600 * 1000 * 8、unit = 'ms')たとえば、GMT + – MATTHEW

0

パンダは、アウトオブボックスDATETIMEにタイムスタンプをサポートしているためpandas.to_datetimeのドキュメントを参照してください:

import pandas as pd 
dataframename['datetime'] = pd.to_datetime(dataframename['columnname'], unit='ms') 

場合、あなたは複数の列があります

# processing the UNIX timestamps into readable dates (pandas datetime): 
ts_cols = dataframename.select_dtypes(['datetime']).columns 
for col in ts_cols: 
    dataframename['%s' % col] = pd.to_datetime(dataframename['%s' % col], unit='ms') 

パンダを使用した場合のパフォーマンス向上外部日付 - it's 2x faster on small dataset, and it'd scale.

関連する問題