Plotly Express条形图类型错误:无法连接非NDFrame对象

2024-05-15 13:24:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图用破折号画出一个绘出的条形图。我从dash gallery复制了代码并填写了我的值: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"],但那也不起作用。它们对于非NDFrame意味着什么?我知道我的列表只是一维的,但文档中说它必须是一个列表、数组或一列。谢谢你的帮助

要求提供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)

Tags: inpyliblocallinecondausersappdata