我用 sqlite3 数据库制作了 DataFrame
df = sql.read_frame("SELECT * FROM hzmo_report;", cnx, index_col='datum')
打印 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 时,切勿在没有 ORDER BY "your date column" 的情况下使用 SQL 查询
这很重要,因为否则,您的 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')