我试图从我转换的数据框创建一个简单的条形图 this使用此代码:
df1 = data[data['PumpState'] == 1.0].groupby('Date').agg({'Pressure': np.mean})
到this。现在,这似乎有点奇怪(上面的压力标签)。当我尝试将其转换为字典时,它表明'压力'是关键,Date是一个值(数字完全相反)。
当我尝试从中制作条形图时,我得到了KeyError:' Date'使用此代码:
plt.bar(range(df1.shape[0]), df1['Pressure'], align='center', alpha=0.5)
plt.xticks(range(df1.shape[0]), df1['Date'].values[:], rotation='vertical')
plt.ylabel('Average Pressure')
plt.xlabel('Date')
plt.title('Average Pressure per Day')
plt.show()
当我交换
df1['Date'].values[:]
代表
df1['Pressure'].values[:]
它显示条形图,但x轴上的值不是日期而是压力值。我的猜测是错误是在转换中的某个地方我使用group by和age或者它可能是完全不同的东西。你能帮我吗?谢谢!
答案 0 :(得分:0)
IIUC你可以这样做:
data[data['PumpState'] == 1.0].groupby('Date')['Pressure'].mean().plot.bar()
答案 1 :(得分:0)
问题确实是df1['Date'].values[:]
。数据框没有“日期”列。 "Date"
已成为数据框索引。因此,您应该使用索引,
df1.index.values
这将看起来像:
plt.bar(range(df1.shape[0]), df1['Pressure'], align='center', alpha=0.5)
plt.xticks(range(df1.shape[0]), df1.index.values, rotation='vertical')
plt.ylabel('Average Pressure')
plt.xlabel('Date')
plt.title('Average Pressure per Day')
plt.show()