2017-08-07 534 views
-1

我有一個數據幀,其中包括列df['date'] and df['time']轉換熊貓系列的字符串轉換日期時間

這是我在一個名爲列已經把df['datetime']

輸出如下所示:2017-04-12 17:30:18.733

我的最終目標是將其轉換爲字符串Wed, 12 Apr 2017 17:30:18 733

當我嘗試不同的方法作爲pd.to_datetime()它告訴我我需要它t o是一個字符串。

,我無法找到全列變成一串字符串

我打過電話.astype(str).apply(str)

有什麼建議的方法?

+0

請問您可以發佈您的代碼嗎? – EsotericVoid

+0

嘗試'.apply(pd.to_datetime).apply()'到日期時間系列 –

+0

'df [['date','time','datetime']]。信息()'?你的列是什麼類型? – Alexander

回答

0

使用這樣的事情:

df.apply(lambda x: x.datetime.strftime('%D %d ...the format you want...')) 
1

你正在採取的字符串(一個在date列和其他在time列),用空格一起加入他們創建一個新的日期時間字符串(如"2017-04-12 17:30:18.733")。然後,您使用strptime將此字符串解析爲日期時間對象。我使用了一個可以包含微秒或不包含的表單。您現在使用'strftime'來將此日期時間對象解析回您想要的字符串格式。

from datetime import datetime 

df = pd.DataFrame({'date': ['2017-04-12', '2017-04-13'], 
        'time': ['17:30:18.733', '07:30:18']}) 


def date_parser(date_string): 
    try: 
     timestamp = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S.%f') 
     timestamp = timestamp.strftime('%a, %d %b %Y %H:%M:%S %f')[:-3] 
    except ValueError: 
     timestamp = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S') 
     timestamp = timestamp.strftime('%a, %d %b %Y %H:%M:%S 000') 
    return timestamp 

df['datetime_str'] = (df['date'] + ' ' + df['time']).apply(lambda x: date_parser(x)) 

>>> df 
     date   time     datetime_str 
0 2017-04-12 17:30:18.733 Wed, 12 Apr 2017 17:30:18 733 
1 2017-04-13  07:30:18 Thu, 13 Apr 2017 07:30:18 000 
+0

格式當我運行它,它說:「ValueError異常」實時數據「2017年4月12日」不不符合格式'%Y-%m- $ d%H:%M:%S' –

+0

等待有進展.. 將更新!謝謝你到目前爲止! –

+0

我轉換DF [「日期」]和df [「時間」]爲日期時間對象而現在的錯誤我得到的是不兼容的類型[