Python 3 - 在pandas dataframe列中将多个日期时间字符串格式转换为一种格式

时间:2018-02-19 07:29:43

标签: python python-3.x datetime

我无法将包含不同格式的日期时间字符串列转换为一种格式。这是一个例子:

test = pd.DataFrame(['2/5/18 21:24', '22/8/17 13:18', '23/8/17 10:47', '2018-09-02 10:15:25'], columns=["date_time"])
# '2018-09-02 10:15:25' this is not September, but should be February

如果它只从1种格式转换为另一种格式,例如,2/5/18 21:24转换为2018-02-05 21:24:00,那么我就知道该怎么做了。

import datetime
datetime.datetime.strptime('2/5/18 21:24', '%m/%d/%y %H:%M').strftime('%Y-%m-%h %H:%M:%S')

最初,我认为只有两种不同的日期格式:%m/%d/%y %H:%M%Y-%m-%h %H:%M:%S所以我认为我可以这样做:

test['converted_date_time'] = np.where(test['date_time'].str.contains(r'/'), datetime.datetime.strptime(str(test['date_time']), '%m/%d/%y %H:%M').strftime('%Y-%m-%h %H:%M:%S'), test['date_time'])

但是你可以看到它不起作用,因此,我收到了这个错误:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/Users/usr1/anaconda3/lib/python3.6/_strptime.py", line 565, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
  File "/Users/usr1/anaconda3/lib/python3.6/_strptime.py", line 362, in _strptime
(data_string, format))
ValueError: time data '0     2/5/18 21:24\n1    22/8/17 13:18\n2    23/8/17 10:47\n3     2018-09-02 10:15:25\nName: date_time, dtype: object' does not match format '%m/%d/%y %H:%M'

此外,我还尝试使用dateutil模块:

import dateutil.parser
dateutil.parser.parse(str(test['date_time']))

并收到此错误:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/Users/usr1/ht_monitoring/venv_ht_monitoring/lib/python3.6/site-packages/dateutil/parser.py", line 1182, in parse
return DEFAULTPARSER.parse(timestr, **kwargs)
  File "/Users/usr1/ht_monitoring/venv_ht_monitoring/lib/python3.6/site-packages/dateutil/parser.py", line 559, in parse
raise ValueError("Unknown string format")
ValueError: Unknown string format

我的python版本是

Python 3.6.2 |Anaconda, Inc. |Pycharm 2017.3.2 (Community Edition)
MacOS High Sierra version 10.13.3

有人可以帮助解决此问题,以便将所有日期转换为此格式%Y-%m-%h %H:%M:%S吗?提前谢谢!

修改更新:     数据是从数百个文件中提取的,文件名格式为= filename_yyyy-mm-dd.csv

0 个答案:

没有答案