#python #pandas
Вопрос:
У меня есть 2 кадра данных. Один загружен из parquet, другой сгенерирован из словаря в JSON.
Я продолжаю получать эту ошибку, даже если индексы одинаковы, т. е. 0-5.
E AssertionError: DataFrame.index are different E E DataFrame.index classes are not equivalent E [left]: RangeIndex(start=0, stop=5, step=1) E [right]: Index(['0', '1', '2', '3', '4'], dtype='object')
кто-нибудь знает, что мне нужно сделать с правым или левым фреймом данных, чтобы это сработало?
линия такая
pd.testing.assert_frame_equal(de_df.head(), pd.DataFrame(expected_de_json))
Комментарии:
1. Их показатели различны. Как вы можете видеть, один из них-это индекс диапазона, поэтому значения генерируются динамически, в то время как другой-это просто индекс, где все значения по существу жестко закодированы.
2. Спасибо! имеет смысл
Ответ №1:
Сбросьте их индексы.
df = df.reset_index(drop=True)
При некоторых условиях панды сбросят индекс, но сохранят старый индекс в новом столбце. drop=True
будет следить за тем, чтобы этого не произошло.
Комментарии:
1. Это было бы излишним
left
, не так ли? поскольку новый индекс будет равен аRangeIndex(5)
, верно?2. Мне нужно не забывать использовать это
drop=True
чаще3. Да @wjandrea, конечно, но на всякий случай 🙂