我需要将pandas.DataFrame
分组为一列,两列和三列,并计算"组"的平均值。
类似的东西:
col1 col2 col3 col4
0 A 17 R 3
1 B 5 T 7
2 F 25 R 11
3 A 33 R 15
4 B 17 T 19
5 F 25 R 23
6 F 25 E 27
按列分组:col1
这里我希望结果为(col3被删除,因为它不是数字):
col2 col4
col1 = A | 0 (17+33)/2 (3+15)/2
col1 = B | 1 (5+17)/2 (7+19)/2
col1 = F | 2 (25+25+25)/2 (11+23)+27/2
按列分组:col1& COL3
col2 col4
col1 = A & col3 = R | 0 (17+33)/2 (3+15)/2
col1 = B & col3 = T | 1 (5+17)/2 (7+19)/2
col1 = F & col3 = R | 2 (25+25)/2 (11+23)/2
col1 = F & col3 = E | 4 25 27
同样的事情,对于3个专栏组。
我找到了pandas.DataFrame.groupby().mean()
方法,但我无法弄清楚它是如何工作的。
例如,对于这个简单的数据框:
In [1]: df
Out[2]:
v1 v2 v3 v4
0 0 17 2 3
1 4 5 6 7
2 8 25 10 11
3 12 33 14 15
4 16 17 18 19
5 20 25 22 23
6 24 25 26 27
7 28 29 30 31
8 32 5 34 35
9 36 5 38 39
In [2]: df.groupby(["v2"]).mean()
Out[2]:
v1 v3 v4
v2
5 24.000000 26.000000 27.000000
17 8.000000 10.000000 11.000000
25 17.333333 19.333333 20.333333
29 28.000000 30.000000 31.000000
33 12.000000 14.000000 15.000000
## For this first case it's ok...
In [3]: df.groupby(["v2","v3"]).mean()
Out[3]:
v1 v4
v2 v3
5 6 4 7
34 32 35
38 36 39
17 2 0 3
18 16 19
25 10 8 11
22 20 23
26 24 27
29 30 28 31
33 14 12 15
groupby
函数究竟是如何工作的以及为什么这个结果(out [3])与原始数据帧的长度不同(因为没有公共对(v2,v3))数据帧)???
答案 0 :(得分:2)
对于前面的前两个示例,以下是您要查找的语法:
hydra = Typhoeus::Hydra.new
10.times.map{ hydra.queue(Typhoeus::Request.new("www.example.com", followlocation: true)) }
hydra.run
这有助于您获得所需的群组吗?