Код: Выделить всё
base = pd.read_excel(base_path, engine="openpyxl", sheet_name=name, header=None)
edit = pd.read_excel(edit_path, engine="openpyxl", sheet_name=name, header=None)
print(edit.to_string())
#=> 0 1 2 3 4 5 6 7
#=> 0 NaN snip blip twig zorp plum glim frap
#=> 1 qux 10 10 9 11 9 10 10
#=> 2 baz 20 18 19 20 20 20 18
#=> 3 bat 12 11 12 11 11 12 12
#=> 4 zot 15 15 16 14 16 14 14
#=> 5 wib 11 11 9 9 10 10 11
#=> 6 fiz 16 16 18 17 18 18 16
#=> 7 woz 19 18 17 19 17 18 17
#=> 8 lug 13 12 12 12 11 12 13
#=> 9 vim 13 14 12 14 12 13 13
#=> 10 nub 18 17 18 16 16 17 18
#=> 11 sums 147 142 142 143 140 144 142
print(edit.to_string())
#=> 0 1 2 3 4 5 6 7 8 9 10 11
#=> 0 0.7 snip blip twig zorp plum glim2 glim frap NaN NaN NaN
#=> 1 qux 10 10 9 11 9 10 10 10 NaN NaN NaN
#=> 2 baz 20 18 19 20 20 21 20 18 NaN NaN 1.2
#=> 3 bat 12 11 12 11 11 12 12 12 NaN NaN NaN
#=> 4 zot 15 15 16 14 16 17 14 14 NaN NaN NaN
#=> 5 wib 11 11 9 9 61.6 10 10 11 NaN NaN NaN
#=> 6 fiz 16 16 18 17 18 18 19 16 NaN NaN NaN
#=> 7 woz 19 18 17 19 17 18 18 17 NaN NaN NaN
#=> 8 lug 13 12 12 12 11 12 12 13 NaN NaN NaN
#=> 9 vim 13 14 12 14 12 13 13 13 NaN NaN NaN
#=> 10 nub 18 17 18 16 16 17 17 18 NaN NaN NaN
#=> 11 sums 147 131 142 150 191.6 148 145 142 NaN NaN NaN
corr = base.corrwith(edit, axis=0)
Код: Выделить всё
Traceback (most recent call last):
File "/Users/phrogz/xlsxdiff/tmp.py", line 18, in
corr = base.corrwith(edit, axis=0)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/phrogz/.venv/lib/python3.11/site-packages/pandas/core/frame.py", line 11311, in corrwith
ldem = left - left.mean(numeric_only=numeric_only)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/phrogz/.venv/lib/python3.11/site-packages/pandas/core/frame.py", line 11693, in mean
result = super().mean(axis, skipna, numeric_only, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/phrogz/.venv/lib/python3.11/site-packages/pandas/core/generic.py", line 12420, in mean
return self._stat_function(
^^^^^^^^^^^^^^^^^^^^
File "/Users/phrogz/.venv/lib/python3.11/site-packages/pandas/core/generic.py", line 12377, in _stat_function
return self._reduce(
^^^^^^^^^^^^^
File "/Users/phrogz/.venv/lib/python3.11/site-packages/pandas/core/frame.py", line 11562, in _reduce
res = df._mgr.reduce(blk_func)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/phrogz/.venv/lib/python3.11/site-packages/pandas/core/internals/managers.py", line 1500, in reduce
nbs = blk.reduce(func)
^^^^^^^^^^^^^^^^
File "/Users/phrogz/.venv/lib/python3.11/site-packages/pandas/core/internals/blocks.py", line 404, in reduce
result = func(self.values)
^^^^^^^^^^^^^^^^^
File "/Users/phrogz/.venv/lib/python3.11/site-packages/pandas/core/frame.py", line 11481, in blk_func
return op(values, axis=axis, skipna=skipna, **kwds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/phrogz/.venv/lib/python3.11/site-packages/pandas/core/nanops.py", line 147, in f
result = alt(values, axis=axis, skipna=skipna, **kwds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/phrogz/.venv/lib/python3.11/site-packages/pandas/core/nanops.py", line 404, in new_func
result = func(values, axis=axis, skipna=skipna, mask=mask, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/phrogz/.venv/lib/python3.11/site-packages/pandas/core/nanops.py", line 719, in nanmean
the_sum = values.sum(axis, dtype=dtype_sum)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/phrogz/.venv/lib/python3.11/site-packages/numpy/_core/_methods.py", line 53, in _sum
return umr_sum(a, axis, dtype, out, keepdims, initial, where)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Кстати, этот тест данные упрощены. Не всегда существует одна строка заголовка с уникальными строками, может быть много строк, представляющих заголовок. Я не могу использовать одну строку для определения уникального идентификатора. Более того, затем я хочу сделать то же самое для строк, где (опять же), возможно, много столбцов, используемых в качестве заголовков строк. И, как показано, значения ячеек могли немного измениться.
Подробнее здесь: https://stackoverflow.com/questions/791 ... data-types