Utilizando PyCharm 2021.2 (Community Edition) y Pandas 1.3.1, con el siguiente código:
import pandas as pd d = {'col1': [1, 2], 'col2': [3, 4]} df = pd.DataFrame(data=d) df.to_csv("testfile.csv")PyCharm producirá una Advertencia, resaltará "testfile.csv" y mostrará "Tipo esperado 'Ninguno', obtuvo 'str' en su lugar" al pasar el mouse sobre la Advertencia.
Se crea testfile.csv y no parece haber problemas.
¿Hay alguna manera de arreglar esto? ¿Alguien sabe por qué aparece este Aviso?
Gracias
Esto parece ser un error en Pycharm que le impide interpretar correctamente | ; el nuevo operador para typing.Union . Unión.
Si ctrl + p mientras estoy dentro de la lista de argumentos de to_csv , obtengo esto
Tenga en cuenta que cree que el argumento es de tipo None (indicado por : None ).
El problema es que esta es la firma real de la función:
def to_csv( self, path_or_buf: FilePathOrBuffer[AnyStr] | None = None, . . . El tipo del parámetro es en realidad FilePathOrBuffer[AnyStr] | None , que antes de Python 3.10 sería typing.Union[FilePathOrBuffer[AnyStr], None] o simplemente typing.Optional[FilePathOrBuffer[AnyStr]] .
Aparentemente, Pycharm aún no puede leer sugerencias de tipos sofisticados, a pesar de decir que es compatible con Python 3.10.
Puede suprimir la advertencia de PyCharm de la siguiente manera:
# noinspection PyTypeChecker df.to_csv("testfile.csv") También puede agregar el comentario de noinspection al comienzo de una función o clase para deshabilitar las advertencias internas, pero tenga cuidado de no ocultar otras advertencias reales. Prefiero la supresión por estado de cuenta solo cuando sea necesario.