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)
选择列时a
和b
(这意味着c
与d
应该进行平均).
我有什么选择?
这就是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)