在matplotlib(pandas)

时间:2017-02-15 07:52:38

标签: python pandas matplotlib

使用Pandas我想分组一列,而不是总结另外两列。 我正在这样做:

df.groupby('data')['Time \n[h]', 'Time \n[h].1'].sum().plot(kind='line')

我得到了很好的情节,但我如何标记每一列。例如'Us'而不是'Time \ n [h]'和'Them'而不是'Time \ n [h] .1'

(对不起奇怪的头衔,但我甚至不确定怎么称呼它)

谢谢, Submi

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案是首先按dict重命名列:

df1 = df.rename(columns={'Time \n[h]':'Us','Time \n[h].1':'Them'})
df1.groupby('data')['Us', 'Them'].sum().plot(kind='line')

或者您可以设置legend文字:

ax = df.groupby('data')['Time \n[h]', 'Time \n[h].1'].sum().plot(kind='line')
ax.legend(['Us','Them'])

样品:

df = pd.DataFrame({'data':[1,1,3],
                   'Time \n[h]':[4,5,6],
                   'Time \n[h].1':[7,8,9]})

print (df)
   Time \n[h]  Time \n[h].1  data
0           4             7     1
1           5             8     1
2           6             9     3

df1 = df.rename(columns={'Time \n[h]':'Us','Time \n[h].1':'Them'})
df1.groupby('data')['Us', 'Them'].sum().plot()

graph