Python 为数据帧中的不同行组绘制不同的线?

Python 为数据帧中的不同行组绘制不同的线?,python,pandas,dataframe,plotly,Python,Pandas,Dataframe,Plotly,我的数据框如下所示: 如何使用pandas和plotly后端生成一个包含两行的时间序列图,一行用于Ankit,另一行用于John 以下是在屏幕截图中生成数据帧的代码: import pandas pandas.options.plotting.backend = "plotly" details = { 'Name' : ['Ankit', 'John', 'Ankit', 'John', 'John', 'John', 'Ankit', 'Ankit'],

我的数据框如下所示:

如何使用pandas和plotly后端生成一个包含两行的时间序列图,一行用于Ankit,另一行用于John

以下是在屏幕截图中生成数据帧的代码:

import pandas
pandas.options.plotting.backend = "plotly"

details = { 
    'Name' : ['Ankit', 'John', 'Ankit', 'John', 'John', 'John', 'Ankit', 'Ankit'], 
    'Month': ['January', 'January', 'February', 'February', 'March', 'April', 'March', 'April'],
    'Grade' : [9, 8, 7, 10, 8, 9, 8, 10], 
} 
d = pandas.DataFrame(details)
d = d.groupby(['Name', 'Month'], as_index=False)['Grade'].mean()
print(d)
如果我这样做:

d.plot(x='Month', y='Grade')

这将产生一行不区分Ankit和John的代码。

groupby
中的代码更改顺序中,并将
mean
汇总为:

d = d.pivot(index='Month', columns='Name', values='Grade')
d.plot()
或使用:

d = pandas.DataFrame(details)
df = d.groupby(['Month','Name'])['Grade'].mean().unstack()

df.plot()
d = pandas.DataFrame(details)
df = d.pivot_table(index='Month', columns='Name', values='Grade', aggfunc='mean')

df.plot()