将一系列字符串转换为日期

时间:2018-11-14 21:30:04

标签: python pandas datetime

我有这样的数据

root[someKey]

我尝试了

someKey

但是结果很糟糕

Id喜欢这样获取新数据

const buildMenuMap = menu => menu.reduce((root, item) => { let parts = item.slice(1).split("/"); let lastPart = parts.pop(); let leaf = parts.reduce((acc, part) => acc[part] || (acc[part] = {}), root); leaf[lastPart] = null; return root; }, Object.create(null)); let arr = ['/social/swipes/women', '/social/swipes/men', '/upgrade/premium']; let result = buildMenuMap(arr); console.log(result);

2 个答案:

答案 0 :(得分:0)

您只需要在列中指定日期的格式即可。根据您的示例,这对我有用。很简单。

pd.to_datetime(df['Date'], format = '%d.%m.%Y')

我假设您日期中的数字分别是day.month.year,而不是month.day.year。如果后者为true,则应改用format = '%m.%d.%Y'

答案 1 :(得分:0)

如果您知道日期始终是MM.DD.YYYY形式的字符串,而只需用MM-DD-YYYY代替,那么您就不必处理任何datetime转换。您可以对字符串进行替换:

>>> from datetime import datetime
>>> mydatestrings = ['05.01.2017','05.02.2017','05.03.2017']
>>> newdates = [ d.replace('.','-') for d in mydatestrings ]
>>> print(newdates)
['05-01-2017', '05-02-2017', '05-03-2017']

另一方面,如果您真的想将所有日期作为Python中的“ datetime”对象,则可以创建一个新列表,如下所示:

>>> datetime_objs = [ datetime.strptime(d, '%m.%d.%Y') for d in mydatestrings ]

然后格式化它,但是您需要:

>>> print(datetime_objs[1].strftime('%m-%d-%Y'))
05-02-2017
>>> print(datetime_objs[1].strftime('%b, %d %Y'))
May, 02 2017