我正在尝试将此两列文件读入数据框。它不显示为日期时间。
INPUT :
DATE DTB3
8/4/2014 0.0004
8/5/2014 0.0003
8/6/2014 0.0003
........
使用此代码:
T1 = pd.read_csv(FRED_file,sep=',',header=None,names=['DATE','DTB3'],dtype= {'DATE':'str','DTB3':'str'},parse_dates=['DATE'],index_col='DATE')
T1.drop(T1.index[0],inplace=True)
T1.index = pd.to_datetime(T1.index, format = '%m/%d%Y')
T1.index = T1.index.strftime('%Y-%m-%d')
T1.index
输出:
Index(['2014-08-04', '2014-08-05', '2014-08-06', '2014-08-07', '2014-08-08',
'2014-08-11', '2014-08-12', '2014-08-13', '2014-08-14', '2014-08-15',
...
'2018-09-07', '2018-09-10', '2018-09-11', '2018-09-12', '2018-09-13',
'2018-09-14', '2018-09-17', '2018-09-18', '2018-09-19', '2018-09-20'],
dtype='object', length=1079)
答案 0 :(得分:1)
好像您正在将索引转换为to_datetime
行中的日期时间,然后使用strftime
(字符串格式时间)将其转换回字符串。我认为,如果您删除该strftime
行,则应该有一个日期时间索引
答案 1 :(得分:0)
为什么无法识别日期时间函数read_csv
是参数header=None
的原因-它将csv的第一行转换为数据(和索引)的第一行并转换为日期时间却失败了:
temp=u"""DATE,DTB3
8/4/2014,0.0004
8/5/2014,0.0003
8/6/2014,0.0003"""
#after testing replace 'pd.compat.StringIO(temp)' to FRED_file
T1 = pd.read_csv(pd.compat.StringIO(temp),
header=None,
names=['DATE','DTB3'],
dtype= {'DTB3':'str'},
parse_dates=['DATE'],
index_col='DATE'
)
print (T1)
DTB3
DATE
DATE DTB3
8/4/2014 0.0004
8/5/2014 0.0003
8/6/2014 0.0003
print (T1.index)
Index(['DATE', '8/4/2014', '8/5/2014', '8/6/2014'], dtype='object', name='DATE')
您可以省略参数header
,names
-因为文件包含csv标头sep
-因为sep=','
是默认参数,'DATE':'str'
来自{{1} }-如果dtype
的值将转换为/
s:
string