1
resposta

Erro no Script Python dentro do Power BI

Eu fiz o Script Python abaixo dentro do Power BI e na horá de aplicá-lo para criar meu gráfico, o código me mostrou este erro que vou colocar antes do meu Script:

Value error: Uncovered data remains when parsing with format "%Y-%m-%dT%H:%M:%S": "0000000" at position 0. You might want to try:
- passing format if your strings have a consistent format;
- passing format if your strings are all ISO8601 but not necessarily in exactly the same format;
-passing format=mixed, and the format will be inferred for each element individually. YOu might want to use dayfirst alongside this.  

Eu não estou conseguindo resolver, se puderem me ajudar por favor!!!

O código começa aqui:

# o código a seguir para criar um dataframe e remover as linhas duplicadas sempre é executado e age como um preâmbulo para o script:

# dataset = pandas.DataFrame(Date, Open, High, Low, Close)

# dataset = dataset.drop_duplicates()

import pandas as pd


import numpy as np

import matplotlib.pyplot as plt

import matplotlib.ticker as mticker

import seaborn as sns


# Configurações iniciais de fonte
plt.rcParams['font.family'] = 'sans-serif'

plt.rcParams["font.sans-serif"] = 'Verdana'

def candlestick(date, open, high, low, close):

    fig, ax = plt.subplots(figsize=(30,11), dpi=72, facecolor='#edf3ee') 
    
    # Dpi é a qualidade da imagem, facecolor é a cor que vai estar na área do nosso gráfico
    
    ax.set_facecolor("#edf3ee")
    
    # Cor que vai estar dentro do nosso gráfico
    
    # Definindo as cores de cada candle
    
    cores = ["green" if close > open else "red" for close, open in zip(close, open)]
    
    # Ajuste para garantir uma lista de cores correta, o zip é para criar uma tupla para a list comprehension fazer o pareamentro entre close e open
    
    # Candlestick corpo + pavio
    
    sns.barplot(x=date, y=np.abs(open-close), bottom=np.min((open,close), axis=0), width=0.8, hue = date, palette=cores, legend = False, ax = ax)
    
    #o primeiro np.abs pega o intervalor entre abertura e fechamento das ações, enquanto o outro seleciona o valor minimo da abertura e fechamento das ações para iniciar o candle 
    
    sns.barplot(x=date, y=high-low, bottom=low, width=0.1, hue = date, palette=cores, legend = False, ax = ax)
    #criação do pavio 
    
dataset["Date"] = pd.to_datetime(dataset["Date"], format="%Y-%m-%dT%H:%M:%S")
    
# Chamada da função de candlestick 

plt.subplots_adjust(left=0.07, bottom=0.05, right=0.95, top=0.95)

plt.show()
1 resposta

Oi Lucas, tudo bem?

O erro que você está recebendo sugere que há um problema com o formato das datas na coluna "Date". Ele indica que o formato especificado "%Y-%m-%dT%H:%M:%S" não está correspondendo aos dados que você tem. O que eu recomendo é verificar o formato exato das suas datas e ajustá-lo no pd.to_datetime(). Se as datas não estiverem no formato ISO8601 ou se houver valores inesperados, isso pode causar o erro. Para verificar você pode fazer isso imprimir algumas linhas do dataset para ver como estão as datas.

Você pode ainda tentar remover o parâmetro format e usar errors='coerce' na função pd.to_datetime() para ver se o problema é solucionado. Abaixo deixo um exemplo de código:

dataset["Date"] = pd.to_datetime(dataset["Date"], errors='coerce')

O parâmetro errors='coerce' irá converter valores inválidos para NaT (Not a Time), o que pode ajudar a identificar quais entradas estão causando problemas.

Espero que isso ajude a solucionar o problema!

Qualquer dúvida, não hesite em compartilhar no fórum.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado