ValueError:错误的项目数通过 3,位置暗示 1

Posted

技术标签:

【中文标题】ValueError:错误的项目数通过 3,位置暗示 1【英文标题】:ValueError: Wrong number of items passed 3, placement implies 1 【发布时间】:2021-11-26 07:46:40 【问题描述】:

我想绘制 plotly express 分组条形图以显示每个十年中的出生人数,仅like this graph。

pivot_dayofweek=final.pivot_table(values='births',index='dayofweek',columns='decade',aggfunc='mean')    



pivot_dayofweek=pivot_dayofweek.loc[['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']]
pivot_dayofweek

pivot_dayofweek dataframe

px.bar(pivot_dayofweek,x=pivot_dayofweek.index,y=pivot_dayofweek.values,barmode='group')

但是当我运行上面的代码时,它给了我一个错误Click to show the error

【问题讨论】:

【参考方案1】: 有模拟数据集和数据透视表 最简单的方法是重构数据透视图,为 plotly 做好准备
    stack() decade 列到索引中 reset_index() 制作索引列 将 decade 设为字符串以防止将其视为连续
import pandas as pd
import numpy as np
import plotly.express as px

df = pd.DataFrame("date": pd.date_range("1-jan-1960", "31-dec-1989", freq="D")).pipe(
    lambda d: d.assign(
        births=np.random.uniform(1, 5, len(d)),
        dayofweek=d["date"].dt.strftime("%A"),
        decade=d["date"].dt.year - d["date"].dt.year % 10,
    )
)

dfp = df.pivot_table(
    values="births", index="dayofweek", columns="decade", aggfunc="sum"
)

px.bar(
    dfp.stack().reset_index().assign(decade=lambda d: d["decade"].astype(str)),
    color="decade",
    x="dayofweek",
    y=0,
    barmode="group",
).update_layout(title="No of birth in day in every decade", yaxis="title":"Births")

【讨论】:

以上是关于ValueError:错误的项目数通过 3,位置暗示 1的主要内容,如果未能解决你的问题,请参考以下文章

ValueError:错误的项目数通过 500,位置暗示 1,Python 和 Pandas

错误 **ValueError: 传递的项目数错误 2,位置暗示 1**

ValueError:错误的项目数通过 5,位置意味着 1,在连续找到第二个最大值时出错

ValueError:传递的项目数错误 1,位置暗示 2

Pandas DataFrame ValueError:传递的项目数错误 2,位置暗示 1

值错误:通过的项目数错误 2,位置暗示 1