Estou tentando criar um DataFrame de um arquivo xlsx estou recebendo um erro ValueError Acontece que uma das colunas tem o caractere "-" no meio dos dados.
Já tentei criar o DataFrame com:
dados = pd.read_excel('vendedores.xlsx', converters = {'Comissão': srt})
dados = pd.read_excel('vendedores.xlsx', dtype = {'Comissão': str})
dados = pd.read_excel('vendedores.xlsx', na_values=['-'])
Mas sempre recebo o mesmo erro: ValueError: invalid literal for int() with base 10: '-'
É possível resolver por dentro do python sem ter que recorrer ao S.O. fazendo algum sed no arquivo?
Código:
import pandas as pd
dados = pd.read_excel('vendedores.xlsx')
Output:
Traceback (most recent call last):
File "/home/sondahl/vendas/app.py", line 17, in <module>
dados = pd.read_excel('vendedores.xlsx')
File "/home/sondahl/vendas/venv/lib/python3.10/site-packages/pandas/io/excel/_base.py", line 517, in read_excel
data = io.parse(
File "/home/sondahl/vendas/venv/lib/python3.10/site-packages/pandas/io/excel/_base.py", line 1629, in parse
return self._reader.parse(
File "/home/sondahl/vendas/venv/lib/python3.10/site-packages/pandas/io/excel/_base.py", line 793, in parse
data = self.get_sheet_data(sheet, file_rows_needed)
File "/home/sondahl/vendas/venv/lib/python3.10/site-packages/pandas/io/excel/_openpyxl.py", line 616, in get_sheet_data
for row_number, row in enumerate(sheet.rows):
File "/home/sondahl/vendas/venv/lib/python3.10/site-packages/openpyxl/worksheet/_read_only.py", line 81, in _cells_by_row
for idx, row in parser.parse():
File "/home/sondahl/vendas/venv/lib/python3.10/site-packages/openpyxl/worksheet/_reader.py", line 167, in parse
row = self.parse_row(element)
File "/home/sondahl/vendas/venv/lib/python3.10/site-packages/openpyxl/worksheet/_reader.py", line 303, in parse_row
cells = [self.parse_cell(el) for el in row]
File "/home/sondahl/vendas/venv/lib/python3.10/site-packages/openpyxl/worksheet/_reader.py", line 303, in <listcomp>
cells = [self.parse_cell(el) for el in row]
File "/home/sondahl/vendas/venv/lib/python3.10/site-packages/openpyxl/worksheet/_reader.py", line 214, in parse_cell
value = _cast_number(value)
File "/home/sondahl/vendas/venv/lib/python3.10/site-packages/openpyxl/worksheet/_reader.py", line 84, in _cast_number
return int(value)
ValueError: invalid literal for int() with base 10: '-'