Я создал Pandas фрейм данных из Ханы, используя библиотеку pyhdb, и создал другой фрейм данных из PostgreSQL, используя Psycopg2. Оба они имеют одинаковые данные, такие как одинаковое количество строк и столбцов и отсортированы по пути. Оба они имеют 5 строк и 5 столбцов. Если я использую df1 == df2, он показывает False для всего. Если я использую приведенную ниже функцию, она ничего не возвращает за dataframe_difference(df1, df2, 'both')
. Я пытался df1.equals(df2)
. Это также False.
def dataframe_difference(df1, df2, which=None):
"""Find rows which are different between two DataFrames."""
comparison_df = df1.merge(df2,
indicator=True,
how='outer')
if which is None:
diff_df = comparison_df[comparison_df['_merge'] != 'both']
else:
diff_df = comparison_df[comparison_df['_merge'] == which]
diff_df.to_csv('diff.csv')
return diff_df
Теперь я пишу df1 и df2 в csv и читаю их снова, и я попробовал все вышеописанные методы, чтобы проверить равенство. Теперь все верно. Есть ли причина, по которой это не сработает в первом сценарии. Если да, то как это решить?
Спасибо