2017-02-15 135 views
0

使用pandas我想分組一列,而不是總結其他兩列。 哪我在做這樣的:在matplotlib中標記兩個groupby列(pandas)

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

我也得到很好的情節,但我怎麼可以把每個列。例如'我們'而不是'時間\ n [h]'和'他們'而不是'時間\ n [h] .1'

(抱歉奇怪的標題,但我甚至不知道如何調用它)

感謝, Submi

回答

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

+0

它爲我,謝謝! – Submi