2016-09-11 20 views
0

pandaオブジェクトをタイムスタンプに変換する際に、私はこの奇妙な問題に直面しています。AttributeError: 'タイムスタンプ'オブジェクトに属性のタイムスタンプがありません

列['date']の値は01/05/2014のようにlinuxtimestampに変換しようとしています。

マイコード:

Train = pd.read_csv("data.tsv", sep='\t') # use TAB as column separator 
Train['timestamp'] = pd.to_datetime(Train['date']).apply(lambda a: a.timestamp()) 

そして、私はこのエラーを取得する:

Traceback (most recent call last): 
    File "socratis.py", line 11, in <module> 
    Train['timestamp'] = pd.to_datetime(Train['date']).apply(lambda a: a.timestamp()) 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/pandas/core/series.py", line 2220, in apply 
    mapped = lib.map_infer(values, f, convert=convert_dtype) 
    File "pandas/src/inference.pyx", line 1088, in pandas.lib.map_infer (pandas/lib.c:62658) 
    File "socratis.py", line 11, in <lambda> 
    Train['timestamp'] = pd.to_datetime(Train['date']).apply(lambda a: a.timestamp()) 
AttributeError: 'Timestamp' object has no attribute 'timestamp' 

答えて

0

方法to_datetimeはTimeStampインスタンスを返します。ラムダ関数で何を達成したいのか分かりませんが、オブジェクトをTimeStampに変換しようとしているようです。それは次のようになりますので、適用され除去部

試してみてください。

Train['timestamp'] = pd.to_datetime(Train['date'])

+0

これを行うと、日付はlinuxタイムスタンプに変換されません。どちらが必要か – user3449212

+0

これを試してみてください。それが悪い場合は答えを更新してください: 'Train ['timestamp'] = time.mktime(pd.to_datetime(train ['date'])。timetuple())' – meganaut

+0

pythonを使用しますか? 'AttributeError: 'Series'オブジェクトに属性 'timetuple'がありません ' – user3449212

0

あなたは、Python 3.3で追加されましたdatetime.timestamp()、探しています。パンダ自体は関与していません。パンダuses nanoseconds internally(numpyのdatetime64[ns])以来

N.B..timestamp() will localize naive timestamps to the computer's UTC offset. To the contrary, suggestions in this answer are timezone-agnostic.

、あなたもPythonの2でこれを行うことができる必要があります:

Train['timestamp'] = pd.to_datetime(Train['date']).value/1e9 

またはこの(日時のドキュメントから)のような、より明示的なwtihなものになる:

import pandas as pd 
from datetime import datetime, timedelta 

def posix_time(dt): 
    return (dt - datetime(1970, 1, 1))/timedelta(seconds=1) 

Train['timestamp'] = pd.to_datetime(Train['date']).apply(posix_time) 
関連する問題