在python中为数据帧获取时间索引
我在为我的熊猫数据帧获取正确的时间索引时遇到了一些问题在python中为数据帧获取时间索引,python,pandas,dataframe,financial,datetimeindex,Python,Pandas,Dataframe,Financial,Datetimeindex,我在为我的熊猫数据帧获取正确的时间索引时遇到了一些问题 import pandas as pd from datetime import strptime import numpy as np stockdata = pd.read_csv("/home/stff/symbol_2012-02.csv", parse_dates =[[0,1,2]]) stockdata.columns = ['date_time','ticker','exch','salcond','vol','price
import pandas as pd
from datetime import strptime
import numpy as np
stockdata = pd.read_csv("/home/stff/symbol_2012-02.csv", parse_dates =[[0,1,2]])
stockdata.columns = ['date_time','ticker','exch','salcond','vol','price','stopstockind','corrind','seqnum','source','trf','symroot','symsuffix']
我认为问题在于时间在前三列:年/月/日、小时/分钟/秒、毫秒。此外,如果在中午之前,则小时/分钟/秒列会删除第一个零
print(stockdata['date_time'][0])
20120201 41206 300
print(stockdata['date_time'][50000])
20120201 151117 770
理想情况下,我想定义我自己的函数,该函数可以由read_csv函数中的converters参数调用。假设您有一个如下所示的
csv
文件:
date,time,milliseconds,value
20120201,41206,300,1
20120201,151117,770,2
import datetime as dt
import pandas as pd
parse = lambda x: dt.datetime.strptime(x, '%Y%m%d %H%M%S %f')
df = pd.read_csv('test.csv', parse_dates=[['date', 'time', 'milliseconds']],
index_col=0, date_parser=parse)
然后使用read\u csv
方法的parse\u dates
、index\u cols
和date\u parser
参数,可以构建一个pandas
数据帧
,时间索引如下:
date,time,milliseconds,value
20120201,41206,300,1
20120201,151117,770,2
import datetime as dt
import pandas as pd
parse = lambda x: dt.datetime.strptime(x, '%Y%m%d %H%M%S %f')
df = pd.read_csv('test.csv', parse_dates=[['date', 'time', 'milliseconds']],
index_col=0, date_parser=parse)
这将产生:
value
date_time_milliseconds
2012-02-01 04:12:06.300000 1
2012-02-01 15:11:17.770000 2
和df.index
:
<class 'pandas.tseries.index.DatetimeIndex'>
[2012-02-01 04:12:06.300000, 2012-02-01 15:11:17.770000]
Length: 2, Freq: None, Timezone: None
[2012-02-01 04:12:06.300000, 2012-02-01 15:11:17.770000]
长度:2,频率:无,时区:无
这个答案基于一个类似的解决方案。我想缺少零并不会使%H出错