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,在连续找到第二个最大值时出错