如何从带有Datetime的字段中仅获取日期和文本值以及python中的文本值?

时间:2018-08-29 18:59:36

标签: python pandas datetime datetime-format python-datetime

我的Python字段值如下所示:

Metrics_Values
2017-12-31 00:00:00
UW Value
2017-12-31 00:00:00
2017-12-31 00:00:00

我想要下面的输出:

Metric_Values
12/31/2017
UW Value
12/31/2017
12/31/2017

我对此数据帧尝试了几种不同的操作,但是由于值属于对象数据类型,并且由于我也有一些文本值,因此我很难获得所需的信息。

赞赏任何指针。 谢谢

2 个答案:

答案 0 :(得分:1)

我不建议在同一系列中使用多种类型的数据,但是以下代码可以为您完成工作:

df.Metrics_Values = df.Metrics_Values.map(lambda x: x.date() if isinstance(x, datetime.datetime) else x)

答案 1 :(得分:0)

您可以使用strptime中的strftime(将字符串转换为日期时间对象)和datetime(将日期时间对象转换为字符串)来格式化日期。这是一个示例:

import datetime as dt

def convert_format(date_string):
    return dt.datetime.strptime(date_string,'%Y-%m-%d %H:%M:%S').strftime('%Y/%m/%d')

然后将这种方法apply用于您的数据框或系列:

df.time_column.apply(lambda x: convert_format(x))

输入:

0  2017-12-31 00:00:00
1  2017-12-31 00:00:00

使用上面的代码将导致:

0    2017/12/31
1    2017/12/31

有关其工作原理的更多信息,请参见strptimestrftime上的文档:https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior