转换熊猫系列的字符串转换日期时间
我有一个数据帧,其中包括列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)
有什么建议的方法?
使用这样的事情:
df.apply(lambda x: x.datetime.strftime('%D %d ...the format you want...'))
你正在采取的字符串(一个在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
格式当我运行它,它说:“ValueError异常”实时数据“2017年4月12日”不不符合格式'%Y-%m- $ d%H:%M:%S' –
等待有进展.. 将更新!谢谢你到目前为止! –
我转换DF [“日期”]和df [“时间”]为日期时间对象而现在的错误我得到的是不兼容的类型[
请问您可以发布您的代码吗? – EsotericVoid
尝试'.apply(pd.to_datetime).apply()'到日期时间系列 –
'df [['date','time','datetime']]。信息()'?你的列是什么类型? – Alexander