Ошибка значения: недостаточно значений для распаковки (ожидается 2, получено 1) в базовой программе python для сравнения 2 электронных таблиц Excel

#python

#python

Вопрос:

Я знаю, что этот вопрос задавался несколько раз, но не уверен, как именно изменить мой код, чтобы удалить указанную выше ошибку

 import pandas as pd
import numpy as np

df1=pd.read_excel('Excel1.xlsx')
df2=pd.read_excel('Excel2.xlsx')

df1.equals(df2)

comparison_values = df1.values == df2.values
print (comparison_values)

rows,cols=np.where(comparison_values==False)

for item in zip(rows,cols):
        df1.iloc[item[0], item[1]] = '{} --> {}'.format(df1.iloc[item[0], item[1]],df2.iloc[item[0], item[1]])

df1.to_excel('./Excel_diff.xlsx',index=False,header=True)
 

Я получаю сообщение об ошибке в строках, cols=np.где (comparison_values==False) строка

Комментарии:

1. numpy в настоящее время считается базовым? O_0

Ответ №1:

np.where возвращает только одно значение. Вот почему вы получаете ошибку

так что это должно быть так:

rows = np.where(...)

Комментарии:

1. Затем это выдает ошибку в цикле for, поскольку нет индекса 1

2. укажите свои df1 и df2. Я обновлю свой код