Я читаю лист Excel и извлекаю данные из строк, содержащих данный заказ на поставку.
import pandas as pd
xlsx = pd.ExcelFile('Book2.xlsx')
df = pd.read_excel(xlsx)
PO_arr = ['121121','212121']
for i in PO_arr:
PO = i
PO_DATA = df.loc[df['PONUM'] == PO]
for i in range(1, max(PO_DATA['POLINENUM'].values) +1):
Когда я беру этот лист Excel прямо из его источника, мой код работает нормально. Но когда я вырезаю только те строки, которые мне нужны, и вставляю их в новую таблицу с точно таким же форматированием и читаю эту новую таблицу, мне приходится изменять PO_DATA, чтобы искать целое число вместо строки как таковой:
PO_DATA = df.loc[df['PONUM'] == int(PO)]
Если нет, я получаю сообщение об ошибке, и вызов PO_DATA возвращает пустой фрейм данных.
C:\...\pandas\core\ops\array_ops.py:253: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
res_values = method(rvalues)
Я проверил форматирование ячеек в Excel, и в обоих случаях они отформатированы как «Общие» ячейки.
Что делает так, что когда я разрезаю свою электронную таблицу, мне приходится искать целое число, а не строку? Что мне нужно сделать, чтобы он работал для листов, которые я создал и вставил в соответствующие данные, а не только для листов из источника?