我的数据框df如下:显示按类型划分的每类人员每天所需的公里数。
People Car dmy value(km)
A Renault 14-05-2016 500
B Peugeot 14-05-2016 1000
A Citroen 14-05-2016 400
A Renault 15-05-2016 24
B Peugeot 15-05-2016 247
A Renault 15-05-2016 369
A Citroen 23-05-2016 692
A Citroen 28-05-2016 284
我有超过1年的20k行
我想通过dmy列进行分组,以获得'值(km)'的平均值。每天一列
这就是我所做的:
我首先创建一个给定2个条件的新数据帧:我的图表仅显示1种车型和1类人物每天的平均值kms。
yy = (df["Car"] == 'Renault') & (df["People"] == 'A')
然后我创建一个数据帧来执行group.by
zz = yy.groupby('dmy')['value(km)'].mean()
并将dmy列设置为索引
zz = zz.set_index(' dmy')
然后我绘制这个新的zz数据帧:
plt.plot(zz.index, zz["value"].values, linestyle='-', color='b', label="Renault")
plt.gcf().autofmt_xdate()
plt.legend()
plt.show()
虽然没有出现情节。求救!
答案 0 :(得分:0)
groupby
会返回DataFrameGroupBy
而不是Dataframe
。
我首先选择必要的列,然后拨打aggregate
并最终plot
:
import numpy as np
zz = yy[['value(km)', 'dmy']].groupby('dmy').aggregate(np.mean)
zz.plot()