我有这么大的数据集,其中日期和时间有不同的列。我想将它们转换为字符串,然后将它们转换为日期时间。但是,此值错误总是会弹出。
<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))
以下是代码:
material2
非常感谢任何帮助!!
答案 0 :(得分:1)
有一些不良数据存在问题 - 专栏<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