Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
4 years ago
Solved

Transformar ejecutar tipos de datos de paso de script de Python

Hola usuarios de Power BI,

Cuando se usa una transformación de script de Ejecución de Python en Power BI con pandas, todas las columnas enteras/flotantes tienen el tipo de datos Texto después de la transformación y deben cambiarse de nuevo a número. Como el conjunto de datos es grande, espero que esta transformación a texto y de vuelta al número consuma mucha potencia de cálculo innecesaria.

Además, al convertir el texto a número decimal, el separador decimal se interpreta incorrectamente, lo que hace que "1.0" se convierta en "10", en lugar de "1,0".

La solución óptima sería permitir que las columnas numéricas agregadas en un paso Ejecutar scripts de Python se interpreten como números decimales / enteros en lugar de texto.

Paso ejecutar script de Python

# 'dataset' contiene los datos de entrada para este script

dataset['ones_int'] = 1

dataset['ones_int_dtype'] =dataset['ones_int'].dtype

dataset['ones_float'] = 1,0

dataset['ones_float_dtype'] = dataset['ones_float'].dtype

Salida del paso Ejecutar script de Python (tenga en cuenta que "ones_int" y "ones_float" son del tipo ABC, por lo tanto, texto)

python_script_data_types.png

Salida de los tipos de columna cambiantes (tenga en cuenta que "ones_float" se convierten a 10 instancias de 1,0)

python_script_data_types_converted.png

  • Hola Comunidad de Power BI,

    Después de unas semanas encontré la solución y es vergonzosamente simple, solo agregue "en-US" al paso de tipo cambiado. Por lo tanto, el paso de tipo cambiado se convierte en:

    python_script_data_types_converted_solution.png

4 Replies

  • Anonymous ,

    ¿Ha definido el tipo de datos en el script?

    import pandas as pd
    data = [['A',1],['B',2],['C',3]]
    df = pd.DataFrame (data, columns=['type','value'], dtype=float)
    print(df)

    Saludos
    Liang
    Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      Hi @V-lianl-msft,

      El problema se produce al volver a leer los datos en Power BI, por lo tanto, después del paso de script de Python. En Python el tipo de datos es por ejemplo float64,sin embargo Power BI lo interpreta como texto.

      Por lo tanto, los tipos de datos de Pandas DataFrame no se interpretan correctamente en Power BI después de procesar los datos en Python, int64 y float64 se interpretan como texto.

      Atentamente

      Marcar

  • Hola Comunidad de Power BI,

    Después de unas semanas encontré la solución y es vergonzosamente simple, solo agregue "en-US" al paso de tipo cambiado. Por lo tanto, el paso de tipo cambiado se convierte en:

    python_script_data_types_converted_solution.png

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hello Power BI Community,

     

    ENGLISH

     

    After a few weeks I found the solution and it is embarrassingly simple, just add "en-US" to the changed type step. Thus the changed type step becomes:

     

    SPANISH

     

    Después de algunas semanas, encontré la solución y es vergonzosamente simple, solo agregue "en-US" al paso de tipo modificado. Por lo tanto, el paso de tipo cambiado se convierte en: