Сравнение фрейма данных различной длины, извлеченного из таблиц оракула, для выделения различий как 'old_value -> new_value' в csv - PullRequest
0 голосов
/ 15 апреля 2019

Я сравниваю два фрейма данных (созданных из двух выходных данных sql) и выделяю различия, как показано ниже в файле csv. Мой код работает, если длина обоих фреймов одинакова. Но он терпит неудачу, если существует другой размер кадра данных.

Я попробовал приведенный ниже код, он работает нормально, если размер обоих фреймов данных одинаков и в том же порядке первичного ключа.

    dfdiff = data1.copy()
    for row in range(dfdiff.shape[0]):
        for col in range(dfdiff.shape[1]):
            value_old = data1.iloc[row, col]
            value_new = data2.iloc[row, col]
            if value_old != value_new:
                dfdiff.iloc[row, col] = ('{} -> {}').format(value_old, value_new)

Фактический результат: Если оба кадра данных имеют разную длину: IndexError: один позиционный индексатор выходит за пределы.

Ожидаемый результат: Следует сравнить все строки на основе столбца первичного ключа (независимо от порядка первичного ключа), а оставшиеся строки следует вставить в CSV без форматирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...