У меня есть фрейм данных:
< tr>
Ключ
Имя
Сумма
Условие
Упаковка
A1
Конфеты А
25
Хорошо
25 Хорошо
B1
Конфеты B
50
Хорошо
49 Хорошо
Хорошо
1 повреждено
C1
Конфеты C
40
Хорошо
40 Хорошо
Я хочу, чтобы мой фрейм данных был таким: если ключевой столбец пуст, строка будет добавлена в ближайшую верхнюю строку с ключом.
Ключ
Наименование
Количество
Состояние
Упаковка
A1
Конфеты А
25
Хорошо
25 Хорошо
B1
Конфеты B
50
Хорошо,Хорошо
49 Хорошо, 1 поврежден
(Вся пустая строка будет удалена)< /td>
C1
Конфеты C
40
Хорошо
40 Хорошо
И наконец, если данные повторяются (хорошо, хорошо), я хочу, чтобы отображалось только 1 (хорошо),
Окончательный кадр данных:
Ключ
Имя
Сумма
УсловиеУпаковка
A1< /td>
Конфеты А
25
Хорошо
25 Хорошо< /td>
B1
Конфеты B
50
Хорошо
49 Хорошо, 1 поврежден
C1
Конфеты C
40
Хорошо
40 Отлично
Есть идеи, как достичь это?
Изменить:
Я импортировал данные из файла .ods
path = QFileDialog.getOpenFileName(self, 'Open ODS', os.getenv('HOME'), 'ODS(*.ods)')[0]
all_data = pd.read_excel(path, skiprows=range(1, 6))
if all_data.size == 0:
return
print(all_data)
а затем я попробовал fillna()
all_data.fillna('', inplace = True)
self.main_screen_product_tableWidget.setRowCount(all_data.shape[0])
self.main_screen_product_tableWidget.setColumnCount(all_data.shape[1])
self.main_screen_product_tableWidget.setHorizontalHeaderLabels(["Key","Name",
"Amount","Condition","Packing"])
Вот как я показываю данные в QTableWidget
for row in all_data.iterrows():
values = row[1]
for col_index, value in enumerate(values):
tableItem = QTableWidgetItem(str(value))
self.main_screen_product_tableWidget.setItem(row[0],
col_index, tableItem)
Подробнее здесь: https://stackoverflow.com/questions/788 ... n-is-empty