它看起来像我不明白大熊猫groupby如何工作,以及如何使用它。有人可以解释我做错了什么或如何解决我的问题? 我想根据不同的列提取一些数据。看例子:实现熊猫groupby - 索引和切片
Number Name Param1 Param2 Param3
0 1 A 0 0.179264 0.565864
1 2 A 1 0.374258 0.985103
2 1 C 2 0.799988 0.855600
3 3 B 3 0.237612 0.290065
4 3 C 4 0.195463 0.232030
5 2 C 5 0.611886 0.712429
6 4 A 6 0.178465 0.056347
7 1 B 7 0.018789 0.393464
8 5 B 8 0.549566 0.457160
9 4 B 9 0.149801 0.590501
10 4 C 10 0.112857 0.327013
11 3 A 11 0.902660 0.670725
12 2 B 12 0.474427 0.104224
13 5 C 13 0.691259 0.620992
14 5 A 14 0.043179 0.028890
然后我想要做一个涉及两个循环的操作。基本上,在这个例子中,我想打印每个数字引用的每个Name的参数(作为一个数组,但这不是问题)[Param1,Param2,Param3]。
因此,一个期望的结果会是什么样子: 数1:[[0, 0.179264, 0.565864],[2, 0.799988, 0.855600],[7, 0.018789, 0.393464]]
数2:[[1, 0.374258, 0.985103],[5, 0.611886, 0.712429],[12, 0.474427, 0.104224]]
等(后来我想绘制它们,并使用“名称”为标签
这是代码:
for n in example.groupby('Number'):
for name in example['Name']:
params = np.array(example.loc[n['Name']==name,['Param1','Param2','Param3']])
print 'Group:', n
print 'Params:\n', params
但好像我无法用数据帧的索引为GROUPBY对象。此代码生成TypeError: tuple indices must be integers, not str
。 有可能,我现在提出,试图弄明白多个错误,但它似乎是正确索引和切片g roupby对象是主要问题。