python - ValueError:错误的项目数通过 3,位置暗示 1
问题描述
我想绘制 plotly express 分组条形图,以显示每个十年的出生人数,就像这张图一样。
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
px.bar(pivot_dayofweek,x=pivot_dayofweek.index,y=pivot_dayofweek.values,barmode='group')
但是当我运行上面的代码时,它给了我一个错误点击显示错误
解决方案
- 有模拟数据集和数据透视表
- 最简单的方法是重组枢轴数据框以准备好进行绘图
stack()
十年列到索引中reset_index()
制作索引列- 将十年设为字符串以防止将其视为连续
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"})
推荐阅读
- python - 合并多个数据帧与内存错误
- docker - 无法运行 docker login 错误是:保存凭据时出错:存储凭据时出错
- reactjs - 当道具数据通过反应钩子发生变化时,我想重新渲染,但我得到了无限的重新渲染
- python - 点到两条线段的距离
- authentication - 如何将 HttpClientFactory 与模拟一起使用?或者找到另一种从基于 Windows 身份的服务中获取 JWT 令牌的方法?
- assembly - MASM 在保护模式下生成错误的调用目标
- python - 如何使seaborn clustermap的行大小相等?
- php - AJAX POST 请求无法与 .htaccess 重定向规则一起正常工作
- mysql - Magento 2.2.6 /var/lib/mysql/ 文件夹占用 43 GB 磁盘空间
- r - GeoJSON 的奇怪结果