Como faço para limpar todo o QTableWidget antes de preenche-lo?

Olá,
Tem um QTableWidget que vou preencher com dados de uma tabela, só que antes de carregar os dados nele, eu preciso limpar os dados anteriores.
Segue o código abaixo:

def load_empresas(self):
    ec = EmpresaController()
    lista = ec.select()
    # print(lista[0][4])
    self.ui.table_empresas.setColumnCount(4)
    self.ui.table_empresas.setHorizontalHeaderItem(
        0, QTableWidgetItem('Código'))
    self.ui.table_empresas.setHorizontalHeaderItem(
        1, QTableWidgetItem('Nome da Empresa'))
    self.ui.table_empresas.setHorizontalHeaderItem(
        2, QTableWidgetItem('CNPJ'))
    self.ui.table_empresas.setHorizontalHeaderItem(
        3, QTableWidgetItem('I.E'))

    self.ui.table_empresas.setColumnWidth(0, -1)
    self.ui.table_empresas.setColumnWidth(1, 400)
    self.ui.table_empresas.setColumnWidth(2, 150)
    self.ui.table_empresas.setColumnWidth(3, 100)

    self.ui.table_empresas.clearContents() #Gostaria de limpa-lo aqui antes do laço abaixo...

    for c, row in enumerate(lista):
        self.ui.table_empresas.insertRow(c)
        self.ui.table_empresas.setItem(c, 0, QTableWidgetItem(str(row[1])))
        self.ui.table_empresas.setItem(c, 1, QTableWidgetItem(str(row[4])))
        self.ui.table_empresas.setItem(c, 2, QTableWidgetItem(str(row[2])))
        self.ui.table_empresas.setItem(c, 3, QTableWidgetItem(str(row[3])))
        self.ui.table_empresas.setRowHeight(c, 10)