将2列合并到DateTime不起作用

时间:2018-01-27 21:52:42

标签: python pandas

我想将TIME和DATE列合并到一个单独的Datetime列中,并告诉pandas将其转换为datetime对象。但我总是得到这个错误...感谢您的帮助

File "C:\Anaconda3\lib\site-packages\dateutil\parser.py", line 559, in parse
raise ValueError("Unknown string format")

ValueError: Unknown string format

我的代码

from __future__ import print_function   
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
import datetime                         

train_end=24                            
N=24

data1 = pd.read_csv('C:\XXX\XXX\XXX/GBPUSD.csv', 
header=None) 
data1.columns=['Date', 'Time', 'Open', 'High', 'Low', 'Close', 'Volume']
data1.shape

data1.head()                              

data1['Datetime'] = pd.to_datetime(data1['Date'] + ' ' + data1['Time'])

2 个答案:

答案 0 :(得分:0)

在黑暗中拍摄:

data1['Datetime'] = pd.to_datetime(data1['Date'].astype(str) + ' ' + data1['Time'].astype(str))

答案 1 :(得分:0)

我在链接文件上运行了您的代码(从data1 = pd.read_csv...开始)并且它运行良好:没有异常,并且新列存在且正确。我试过修剪其中一个日期并得到了同样的例外。在您收到错误的任何数据文件中,至少有一个日期或时间条目必须出错。

我建议您尝试查找问题数据并查看是否可以自动修复或者您需要跳过的内容。这样的事情可能有所帮助:

In [18]: for index, row in data1.iterrows():
    ...:     try:
    ...:         pd.to_datetime(row['Date'] + ' ' + row['Time'])
    ...:     except ValueError:
    ...:         print(row)
Date      01/2a/2018
Time           01:30
Open         1.42279
High           1.423
Low          1.42182
Close        1.42195
Volume          1790
Name: 7, dtype: object

在这个例子中,你可以看到Date列有一个“a”,它应该有一个数字。