熊猫日期时间转换无法识别我的输入
问题描述:
我有这么大的一组数据,其中日期和时间有单独的列。我想将它们转换为字符串,然后将它们转换为日期时间。但是,此值错误总是弹出。熊猫日期时间转换无法识别我的输入
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