Ошибка «min() arg — пустая последовательность» при попытке нарисовать счетчик или гистограммуPython

Программы на Python
Гость
Ошибка «min() arg — пустая последовательность» при попытке нарисовать счетчик или гистограмму

Сообщение Гость »


В настоящее время я учусь разрабатывать приложение информационной панели с помощью Shiny для Python, и у меня возникают проблемы при попытке построить график с отфильтрованными данными.
Я использую исходный набор данных, я хочу для фильтрации по «имени пациента» или «дате», которую я собираю из селектора диапазона данных или поля выбора. чтобы выполнить выбор данных, я попытался настроить реактивную функцию, которая делает выбор строки с помощью библиотеки pandas.
когда я хочу отобразить график (например, график подсчета), я получаю следующее сообщение: min() arg — пустая последовательность. я не встречаю эту ошибку, если напрямую строю график с нефильтрованными данными.
поэтому я думаю, что на этапе фильтрации что-то не так:
< предварительно>

Код: Выделить всё

from shiny.express import input, render, ui
from shiny import reactive
import plotly.express as px
import pandas as pd
import numpy as np
import seaborn as sns
from shinywidgets import reactive_read, render_widget

df_patient = pd.read_excel(r"C:\Users\rdesb\OneDrive\Bureau\MyAPP\dashboard\db_patient.xlsx",
index_col="Indice")

df_ABS = pd.read_excel(r"C:\Users\rdesb\OneDrive\Bureau\MyAPP\dashboard\Bdd_ABS.xlsx")
liste_patient = pd.unique(df_ABS["Patient"])
liste_patient = tuple(liste_patient)

#df_patient["Date de naissance"] = pd.to_datetime(df_patient["Date de naissance"], format='%d-%m-%Y')

#INTERFACE GRAPHIQUE

ui.page_opts(title="DashBoard Plume", fillable=True)

with ui.nav_panel("Informations Patients"):
ui.h2("Informations Patients")
@render.data_frame
def patients_df():
return render.DataGrid(df_patient)

with ui.nav_panel("Statistiques"):

with ui.layout_columns():

with ui.card(full_screen=False, height=100):
ui.card_header("Selection de date")
ui.input_date_range("daterange", "Date range", start="2020-01-01")

with ui.card(full_screen=False, height=100):
ui.card_header("Selection patient")

ui.input_select(
"patient_select",
"Choisissez un patient:",
liste_patient,  )

@reactive.Calc
def df_ABS_sorted():
return df_ABS.loc[df_ABS["Patient"]== {input.patient_select()}]

with ui.layout_columns():
with ui.card(full_screen=False, height=700):
@render.plot(alt="Affichage données triées par patient et date")
def plot():
ax = sns.countplot(data=df_ABS_sorted(), x="Patient")
ax.set_title("Absences")
ax.set_xlabel("Nom")
ax.set_ylabel("Counts")
return ax

@render.text
def value():
return f"{input.patient_select()}"
enter image description here
i also tried not using reactive calculation and directly type the "filtered" conditions, that lead to the same error.
i guess there is something wrong typing directly :

Код: Выделить всё

df_ABS.loc[df_ABS["Patient"]== {input.patient_select()}]
, maybe something conflcit with the type.
thank you for your help and have a good day.


Источник: https://stackoverflow.com/questions/781 ... nt-barplot

Вернуться в «Python»