我刚刚接受pandas
,认为它将使我能够在python中很好地进行数据分析.现在我有一个pandas
以下形式的数据框:
pandas.DataFrame({"p1": [1, 1, 2, 2, 3, 3]*2,
"p2": [1]*6+[2]*6,
"run": [1, 2]*6,
"result": xrange(12)})
p1 p2 result run
0 1 1 0 1
1 1 1 1 2
2 2 1 2 1
3 2 1 3 2
4 3 1 4 1
5 3 1 5 2
6 1 2 6 1
7 1 2 7 2
8 2 2 8 1
9 2 2 9 2
10 3 2 10 1
11 3 2 11 2
Run Code Online (Sandbox Code Playgroud)
我想生成一个框架,其中包含每个参数集的一个条目p1
以及这些参数p2
的所有值的平均值result
,即
p1 p2 result
0 1 1 0.5
1 2 1 2.5
2 3 1 4.5
3 1 2 6.5
4 2 2 8.5
5 3 2 10.5
Run Code Online (Sandbox Code Playgroud)
pandas
这样做的方法是什么?我会尝试复制原始表,删除不同的列(result
和run
),重新索引,将新索引再次组合为多索引,然后运行该外部多索引级别的均值方法.是的方式做到这一点,如果是,我如何正确地在代码中做这些事指数?
你可以使用groupby(我已经调用了你的数据帧df):
df.groupby(['p1', 'p2']).mean()
Run Code Online (Sandbox Code Playgroud)
这会产生MultiIndex DataFrame.要获得问题中的布局,请仅选择所需的列并重置索引:
df.groupby(['p1', 'p2']).mean()['result'].reset_index()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7693 次 |
最近记录: |