2017-07-19 10 views
1

私は自己教えられたコーダーです(1年ぐらい、新しいものです)。ここに私のデータですdf ['Time'] = pd.to_datetime(phData ['Time']、format = '%H:%M:%S')を使用した後、1900-01-01からの日付が私の 'Time'に追加されます

phData = pd.read_excel('phone call log & duration.xlsx') 
called from called to Date Time Duration in (sec) 
0 7722078014 7722012013 2017-07-01 10:00:00 303 
1 7722078014 7722052018 2017-07-01 10:21:00 502 
2 7722078014 7450120521 2017-07-01 10:23:00 56 

The dtypes are: 
called from     int64 
called to      int64 
Date     datetime64[ns] 
Time       object 
Duration in (sec)    int64 
dtype: object 

phData['Time'] = pd.to_datetime(phData['Time'], format='%H:%M:%S') 


phData.head(2) 

called from called to Date Time Duration in (sec) 
0 7722078014 7722012013 2017-07-01 1900-01-01 10:00:00 303 
1 7722078014 7722052018 2017-07-01 1900-01-01 10:21:00 502 

私は '時刻'をdatetime64 [ns]に変更することができましたが、何らかの形で日付が追加されましたか?どこからわからないのですか?私はDateTimeを私が喜んでいるパンダを使って分析できるようにしたい。日時、頻度などの間で行われた呼び出しを調べるために、私はそれを保存してOrange3で動作するようになると思います。しかし、Orange3は時刻を時刻形式として認識しません。私は1900-01-01を取り除こうとしましたが、オブジェクトの場合にしか実行できないというエラーが表示されます。私は時間がdatetimeではないと思うが、datetime.time ???なぜこの問題が重要であるのかわかりません。2 ともう1つのTimeというように、私が私のために私に認識させるのは分かりません。私は無数の投稿を見て、それはpd.to_datetimeを使用する方法を見つけたところであり、私の問題はdatetime.timeであるかもしれませんが、私はこの後に立ち往生しています。

答えて

0

パンダには、時間のようなdtypeはありません。 datetimeまたはtimedelta dtypeのいずれかを指定できます。

オプション1:2

In [23]: df['TimeStamp'] = pd.to_datetime(df.pop('Date') + ' ' + df.pop('Time')) 

In [24]: df 
Out[24]: 
    called from called to Duration in (sec)   TimeStamp 
0 7722078014 7722012013    303 2017-07-01 10:00:00 
1 7722078014 7722052018    502 2017-07-01 10:21:00 
2 7722078014 7450120521     56 2017-07-01 10:23:00 

オプション:単一の列に日付と時刻を組み合わせて、あなたは

In [27]: df.Date = pd.to_datetime(df.Date) 

In [28]: df.Time = pd.to_timedelta(df.Time) 

In [29]: df 
Out[29]: 
    called from called to  Date  Time Duration in (sec) 
0 7722078014 7722012013 2017-07-01 10:00:00    303 
1 7722078014 7722052018 2017-07-01 10:21:00    502 
2 7722078014 7450120521 2017-07-01 10:23:00     56 

In [30]: df.dtypes 
Out[30]: 
called from     int64 
called to      int64 
Date     datetime64[ns] 
Time     timedelta64[ns] 
Duration in (sec)    int64 
dtype: object 
+0

@Analyst:timedelta DTYPEにdatetimeTimeDateを変換しますようこそ!それが参考になった場合は、[受諾](http://meta.stackexchange.com/a/5235)/回答をアップしてください - あなたの質問に回答したことも示されます – MaxU