2017-12-10 8 views
0

私は 'int'形式のデータ列を持っています。これを日付形式に変更したいのですが、私の時刻は94320のように9:43:20か別の例です: 143020は14:30:20にする必要があります。私は整数の列をPythonで時刻に変換する

quote['SellTime'] = pd.to_datetime(quote['SellTime'], unit = 's') 

を使用しますが、それは私がそれを必要としない時間の初めに1970-01-01を追加します。普通Pythonで

+0

あなたはもっと例を挙げることができますか? 「1333」が01:03:33または13:03:03の場合はどうなりますか? – Ivonet

+0

データは実際の時間であり、決して5桁未満ではなく、60000(6:00:00)から始まり140000(14:00:00)で終了します。 – ary

答えて

0
>>> import pandas as pd 
>>> df = pd.DataFrame({'SellTime': [94320, 143020]}) 
>>> df 
    SellTime 
0  94320 
1 143020 
>>> df['New'] = pd.to_datetime(df['SellTime'], format='%H%M%S').dt.time 
>>> df 
    SellTime  New 
0  94320 09:43:20 
1 143020 14:30:20 
0

def format_time(value): 
    t2 = str(value) 
    if len(t2) == 5: 
     return "0%s:%s:%s" % (t2[0], t2[1:3], t2[3:5]) 
    return "%s:%s:%s" % (t2[0:2], t2[2:4], t2[4:6]) 


print(format_time(60000)) 
print(format_time(120000)) 

戻り

06:00:00 
12:00:00 

この機能は、すべての値が正しいことを前提としています。たとえば、チェックがありません。時間55

関連する問題