python groupby绘图的长度不匹配错误
我想在基于工作日对某列进行分组后,绘制df1中某列的平均值。根据特定列值从另一个df中过滤df1。第一个数据框包含不同平面类型的人工数据。我过滤df1的平面类型,然后绘制每周人工数据的平均值。代码如下:python groupby绘图的长度不匹配错误,python,pandas,plot,group-by,Python,Pandas,Plot,Group By,我想在基于工作日对某列进行分组后,绘制df1中某列的平均值。根据特定列值从另一个df中过滤df1。第一个数据框包含不同平面类型的人工数据。我过滤df1的平面类型,然后绘制每周人工数据的平均值。代码如下: df1 = df[df['Aircraft'].str.contains('SB_A330')] weekday = df1['Labor_Hrs'].groupby(df1.index.dayofweek).mean() weekday.index = ['Mon', 'Tues', 'W
df1 = df[df['Aircraft'].str.contains('SB_A330')]
weekday = df1['Labor_Hrs'].groupby(df1.index.dayofweek).mean()
weekday.index = ['Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat', 'Sun']
weekday.plot(style=['-'])
此代码仅适用于某些类别,其中一些类别会出现长度不匹配错误。e、 g.如果存在“A”、“B”、“C”和“D”类飞机,则适用于“A”和“B”,对于另一类飞机,我得到以下错误:
长度不匹配:预期轴有1个元素,新值有7个元素
“元素”或
长度不匹配:预期轴有3个元素,新值有7个元素
元素”
我得到的图表如下所示:
您需要为长度为7
的系列添加缺少的天数:
weekday=df1['Labor_Hrs'].groupby(df1.index.dayofweek).mean().reindex(range(7), fill_value=0)
样本:
rng = pd.date_range('2017-04-03', periods=6, freq='59H')
df1 = pd.DataFrame({'Labor_Hrs': range(6)}, index=rng)
print (df1)
Labor_Hrs
2017-04-03 00:00:00 0
2017-04-05 11:00:00 1
2017-04-07 22:00:00 2
2017-04-10 09:00:00 3
2017-04-12 20:00:00 4
2017-04-15 07:00:00 5
weekday=df1['Labor_Hrs'].groupby(df1.index.dayofweek).mean().reindex(range(7), fill_value=0)
weekday.index = ['Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat', 'Sun']
print (weekday)
Mon 1.5
Tues 0.0 <-added 0 for missing
Wed 2.5
Thurs 0.0 <-added 0 for missing
Fri 2.0
Sat 5.0
Sun 0.0 <-added 0 for missing
Name: Labor_Hrs, dtype: float64
rng=pd.日期范围('2017-04-03',周期=6,频率=59H')
df1=pd.DataFrame({'labour\u Hrs':range(6)},index=rng)
打印(df1)
劳动小时
2017-04-03 00:00:00 0
2017-04-05 11:00:00 1
2017-04-07 22:00:00 2
2017-04-10 09:00:00 3
2017-04-12 20:00:00 4
2017-04-15 07:00:00 5
weekday=df1['labour\u Hrs'].groupby(df1.index.dayofweek).mean().reindex(范围(7),填充值=0)
weekday.index=[‘周一’、‘周二’、‘周三’、‘周四’、‘周五’、‘周六’、‘太阳’]
打印(工作日)
周一1.5
星期二0.0你能举一个数据帧的例子吗?我猜这与你的weekday.index
行有关,其中groupby返回的时间不到7天。是的,确实是使用weekday.index.reindex函数修复的。错误现在已经修复。感谢你的明确解释。