在pandas数据帧中选择和平均值

cls*_*udt 0 python data-analysis dataframe pandas

我是pandas数据分析库的新手.我需要完成的任务如下:

给定具有一组列的数据框(表)C,选择列子集中的值A相同的所有行,并将它们组合到单个行中,其中对其他行的值进行C \ A平均.

(目标是测试程序的多次运行,并在参数相同的情况下平均值,如运行时间.)

例如:

a       b       c       d
eggs    ham     1.0     0.0
eggs    ham     0.0     0.5
spam    eggs    0.0     1.0
spam    eggs    0.0     1.0
Run Code Online (Sandbox Code Playgroud)

应结合起来:

a       b       c       d
eggs    ham     0.5     0.25
spam    eggs    0.0     1.0
Run Code Online (Sandbox Code Playgroud)

选择列时ab(这意味着cd应该进行平均).

我有什么选择?

HYR*_*YRY 6

这就是groupby的作用

http://pandas.pydata.org/pandas-docs/stable/groupby.html

from StringIO import StringIO

txt = """a       b       c       d
eggs    ham     1.0     0.0
eggs    ham     0.0     0.5
spam    eggs    0.0     1.0
spam    eggs    0.0     1.0"""

df = pd.read_csv(StringIO(txt), sep="\\s+")
df.groupby(["a","b"], as_index=False).mean()
Run Code Online (Sandbox Code Playgroud)