Я сделал DataFrame из sqlite3 базы данных сИзменить индекс на дату/время в пандах?
df = sql.read_frame("SELECT * FROM hzmo_report;", cnx, index_col='datum')
печати df.dtypes -> Givers меня:
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
Значение идентификатора, что под названием 'точка привязки' в базе данных:
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)
Как изменить идентификатор (индекс) от типа int64 до некоторого типа даты/времени?
Я не хочу этого делать, чтобы идентификатор был отсортирован.
Также, как удалить дату из индекса, потому что у меня есть только одна запись на рот, поэтому частота должна быть ежемесячной. например. 2012-12-01 - 2012-12 и так далее.
UPDATE:
При построении DataFrame из базы данных SQL никогда не использовать 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')
я обнаружил, что с 'df.index = pd.to_datetime (df.index)' Я могу преобразовать в DatetimeIndex. Вопрос только в том, как установить частоту до 1 месяца? – WebOrCode
Я также нашел еще один большой BUG в моем коде, это в SQL-запросе. Причина, почему моя строка не сортируется по дате, - это дуэт SQL-запроса, я использую 'SELECT * FROM hzmo_report;', но это не будет сортировать по строкам по дате, я должен был использовать 'SELECT * FROM hzmo_report ORDER BY datum;'. Теперь моя строка сортируется по дате. – WebOrCode