我使用
从sqlite3数据库创建了DataFramedf = sql.read_frame("SELECT * FROM hzmo_report;", cnx, index_col='datum')
print df.dtypes - >给了我:
id int64
osiguranika int64
korisnika int64
omjer float64
mirovina float64
udio float64
neto_placa int64
neto_datum object
sredstva int64
dzd_korisnika int64
dzd_djece int64
dzd_sredstva_sr float64
dzd_sredstva_bz float64
dzd_isplata int64
url object
id的值,数据库中名为'datum'的是:
print df.index
Index([2012-12-01, 2013-01-01, 2012-11-01, 2013-02-01, 2012-09-01, 2012-10-01, 2012-08-01, 2012-07-01, 2012-06-01, 2012-05-01, 2012-04-01, 2012-03-01, 2012-02-01, 2011-12-01, 2011-11-01, 2011-10-01, 2011-09-01, 2011-08-01, 2011-07-01, 2011-06-01, 2011-05-01, 2011-04-01, 2011-03-01, 2012-01-01, 2011-02-01, 2011-01-01, 2010-12-01, 2010-11-01, 2010-10-01, 2010-09-01, 2010-08-01, 2010-07-01, 2010-06-01, 2010-05-01, 2010-04-01, 2010-03-01, 2010-02-01, 2010-01-01, 2009-12-01, 2009-10-01, 2009-11-01, 2013-03-01], dtype=object)
那么如何将id(index)从int64类型更改为某个日期/时间类型?
我不会这样做,以便对id进行排序。
另外如何从索引中删除日期,因为我每个口只有一个条目,所以频率应该是每月。例如。 2012-12-01至2012-12等。
更新
当您从SQL数据库构造DataFrame时,永远不要使用SQL查询而不使用ORDER BY“您的日期列”
这很重要,因为否则,您的日期列不会对您的DataFrame进行排序。
所以我的SQL
df = sql.read_frame("SELECT * FROM hzmo_report;", cnx, index_col='datum')
应该是:
df = sql.read_frame("SELECT * FROM hzmo_report ORDER BY datum;", cnx, index_col='datum')
答案 0 :(得分:3)
尝试使用pandas.PeriodIndex(df.index, freq='M')