У меня есть DataFrame с dtype=object
как:
YY MM DD hh var1 var2
.
.
.
10512 2013 01 01 06 1.64 4.64
10513 2013 01 01 07 1.57 4.63
10514 2013 01 01 08 1.56 4.71
10515 2013 01 01 09 1.45 4.69
10516 2013 01 01 10 1.53 4.67
10517 2013 01 01 11 1.31 4.63
10518 2013 01 01 12 1.41 4.70
10519 2013 01 01 13 1.49 4.80
10520 2013 01 01 20 1.15 4.91
10521 2013 01 01 21 1.14 4.74
10522 2013 01 01 22 1.10 4.95
Как видно, отсутствуют строки, соответствующие часам (hh
) (например, между 10519 и 10520 строками, hh
скачет с 13 до 20). Я попытался добавить пробел, установив hh
в качестве индекса, как это обсуждалось здесь: Отсутствующие данные, вставьте строки в Pandas и заполните NAN
df=df.set_index('hh')
new_index = pd.Index(np.arange(0,24), name="hh")
df=df.reindex(new_index).reset_index()
и достигните чего-то вроде:
YY MM DD hh var1 var2
10519 2013 01 01 13 1.49 4.80
10520 2013 01 01 14 Nan Nan
10521 2013 01 01 15 Nan Nan
10522 2013 01 01 16 Nan Nan
...
10523 2013 01 01 20 1.15 4.91
10524 2013 01 01 21 1.14 4.74
10525 2013 01 01 22 1.10 4.95
Но я сталкиваюсь с ошибкой "cannot reindex from a duplicate axis"
для части df=df.reindex(new_index)
.
Для каждого hh=0,1,...,23
есть повторяющиеся значения, поскольку одно и то же значение hh
будет повторяться для разных месяцев (MM
) и лет (YY
).
Вероятно, в этом причина. Как я могу решить проблему?
В общем, как можно заполнить недостающие строки панд DataFrame, когда индекс содержит дубликаты данных. Я ценю любые комментарии.