Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python groupby绘图的长度不匹配错误_Python_Pandas_Plot_Group By - Fatal编程技术网

python groupby绘图的长度不匹配错误

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中过滤df1。第一个数据框包含不同平面类型的人工数据。我过滤df1的平面类型,然后绘制每周人工数据的平均值。代码如下:

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函数修复的。错误现在已经修复。感谢你的明确解释。