Plotly Express Ошибка типа гистограммы: невозможно объединить объект, отличный от NDFrame - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь построить гистограмму express с помощью da sh. Я скопировал код из галереи da sh и ввел свои значения: dfs - это фрейм данных панды, а «Kostenartenbeschr», «Wert», «Kostenarten_vereinfacht», «Periode», «EWB» - все столбцы в dfs.

dcc.Graph(figure = px.bar(dfs, x="Kostenartenbeschr", y="Wert", 
                          color="Kostenart_vereinfacht", barmode="group",
       facet_row= "EWB", 
       facet_col= "Periode",
       category_orders= {"Periode": dfs["Periode"].drop_duplicates().astype("str"), 
                         "EWB": ["E","W","B","All"]                            }
          )
),

Ошибка:

Traceback (most recent call last):
  File "Dashboard.py", line 120, in <module>
    "EWB": ["E","W","B","All"]                            }
  File "C:\Users\TO3THY0\AppData\Local\conda\conda\envs\DataScience\Lib\site-packages\plotly\express\_chart_types.py", line 313, in bar
    layout_patch=dict(barmode=barmode),
  File "C:\Users\TO3THY0\AppData\Local\conda\conda\envs\DataScience\Lib\site-packages\plotly\express\_core.py", line 1332, in make_figure
    args, grouper, grouped
  File "C:\Users\TO3THY0\AppData\Local\conda\conda\envs\DataScience\Lib\site-packages\plotly\express\_core.py", line 1309, in get_orderings
    orders[col].append(val)
  File "C:\Users\TO3THY0\AppData\Local\conda\conda\envs\DataScience\Lib\site-packages\pandas\core\series.py", line 1553, in append
    verify_integrity=verify_integrity)
  File "C:\Users\TO3THY0\AppData\Local\conda\conda\envs\DataScience\Lib\site-packages\pandas\core\reshape\concat.py", line 206, in concat
    copy=copy)
  File "C:\Users\TO3THY0\AppData\Local\conda\conda\envs\DataScience\Lib\site-packages\pandas\core\reshape\concat.py", line 263, in __init__
    raise TypeError("cannot concatenate a non-NDFrame object")
TypeError: cannot concatenate a non-NDFrame object

Я пробовал dfs["EWB"].drop_duplicates().astype(str) вместо ["E","W","B","All"], но это тоже не работает. Что они означают с Non NDFrame? Я знаю, что мой список одномерный, но в документации сказано, что он должен быть списком, или array_like, или столбцом panda df. Спасибо за помощь!

Прошился mcve:

import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.express as px
import pandas as pd

dfs = pd.read_csv("T_SAP_IST.txt", sep=";", encoding="latin-1", low_memory=False)

app = dash.Dash()
app.layout = html.Div([
    dcc.Graph(figure=px.bar(dfs, x="Kostenartenbeschr", y="Wert", 
                          color="Kostenart_vereinfacht", barmode="group",
       facet_row= "EWB", 
       facet_col= "Periode",
       category_orders= {"Periode": dfs["Periode"].drop_duplicates().astype("str"), 
                         "EWB": ["E","W","B","All"]                            }
          ))
])

app.run_server(debug=True, use_reloader=False)
...