【发布时间】:2019-07-02 18:02:21
【问题描述】:
我有以下数据框,我正在尝试在对数据进行分组后绘制值和误差线
import pandas as pd
from pprint import pprint
def classify_data():
race = ['race1','race1','race1','race1','race2','race2','race2', 'race2']
qualifier = ['last','first','first','first','last','last','first','first']
participant = ['rat','rat','cat','cat','rat','dog','dog','dog']
avgsteps = ['223','321', '445', '165', '216', '127', '122', '214']
measureerror = ['0.02', '0.01', '0.01', '0.05', '0.02', '0.01', '0.01', '0.05']
id = ['a', ' b', 'c', 'd', 'e', 'f', 'g', 'h']
df = pd.DataFrame(
{'race': race,
'qualifier': qualifier,
'participant': participant,
'avgsteps' : avgsteps,
'measureerror': measureerror
}
)
我想将数据分组:
race qualifier participant avgsteps measureerror id
0 race1 first rat 321 0.01 b
1 race1 first cat 445 0.01 c
2 race1 first cat 165 0.05 d
3 race2 first dog 122 0.01 g
4 race2 first dog 214 0.05 h
我打算为每种种族类型创建单独的情节。
例如,race 1 的绘图,其 id 在 x 轴上,avgsteps 和
y 轴上measureerror 的误差线。我想根据
participant 类型。
一开始,我试过了
df2 = (df.groupby(['race', 'qualifier'])
)
这会返回一个对象,我不知道如何继续。
编辑:
df = df[df.qualifier.str.contains('first')]
给予
1 race1 first rat 321 0.01 b
2 race1 first cat 445 0.01 c
3 race1 first cat 165 0.05 d
6 race2 first dog 122 0.01 g
7 race2 first dog 214 0.05 h
但是,我不确定如何直接使用 groupby
我想请教如何进行的建议
【问题讨论】:
-
样本数据的预期输出是什么?
-
@QuangHoang 请在下面查看我的回答