Pandas 日期时间转换无法识别我的输入

Pandas datetime conversion does not recognize my input

我有一大组数据,其中日期和时间有单独的列。我想将它们转换为字符串,然后将它们转换为日期时间。但是,总是弹出这个值错误。

ValueError: time data '200101030' does not match format '%Y%m%d%H%M%S' (match)

数据格式如下:

 <DTYYYYMMDD>  <TIME>  Adj. Open  Adj. High  Adj. Low  Adj. Close  volume
   20010102  230100     0.5617     0.5617    0.5617      0.5617       4
   20010102  230400     0.5616     0.5616    0.5616      0.5616       4

代码如下:

df=pd.read_csv('AUDUSD.txt')
df['DATE']=df['<DTYYYYMMDD>'].map(str)+df['<TIME>'].map(str)
df['DATE']=pd.to_datetime(df['DATE'],format="%Y%m%d%H%M%S")
print(df.head(15))

非常感谢任何帮助!!

一些错误数据有问题 - 在列 <TIME> 中是 zero

需要参数 errors='coerce' 将错误数据转换为 NaT:

print (df)
   <DTYYYYMMDD>  <TIME>  Adj. Open  Adj. High  Adj. Low  Adj. Close  volume
0      20010102  230100     0.5617     0.5617    0.5617      0.5617       4
1      20010103       0     0.5616     0.5616    0.5616      0.5616       4


df['DATE']=df['<DTYYYYMMDD>'].astype(str)+df['<TIME>'].astype(str)
df['DATE']=pd.to_datetime(df['DATE'],format="%Y%m%d%H%M%S", errors='coerce')
print (df)
   <DTYYYYMMDD>  <TIME>  Adj. Open  Adj. High  Adj. Low  Adj. Close  volume  \
0      20010102  230100     0.5617     0.5617    0.5617      0.5617       4   
1      20010103       0     0.5616     0.5616    0.5616      0.5616       4   

                 DATE  
0 2001-01-02 23:01:00  
1                 NaT