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

时间:2013-02-28 12:14:56

标签: python dataframe pandas data-analysis

我是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

应合并到:

a       b       c       d
eggs    ham     0.5     0.25
spam    eggs    0.0     1.0

选择列ab时(这意味着cd应该被平均)。

我有什么选择?

1 个答案:

答案 0 :(得分: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()