从R到Python的等效By

时间:2014-01-21 13:55:27

标签: python r

我是python的新手。 如果有人能告诉我如何在python

中使用by来包装数据表,我将不胜感激

例如

tmp2=by(data =tmp,tmp$categorie, FUN = function(x) head(x, nb))
tmp2=do.call("rbind",tmp2)

提前感谢,

从评论中我完成了我的帖子:

 d=d[,c('categorie','titre','permanent')]
 > d
     categorie titre permanent
1          bro Vide-     false
2          bro March     false
3          bro Salon     false
4          bro Puces     false
5          bro Puces     false
6          bro March     false
2158       var   IAM     false
2159       var Valer     false
2160       zoo Aquar      true
2161       zoo Menag      true
2162       zoo Aquar      true
2163       zoo Aquar      true

> (tmp =by(data =d,d$categorie, FUN = function(x) head(x, 2)))
d$categorie: bro
  categorie titre permanent
1       bro Vide-     false
2       bro March     false
------------------------------------------------------------------------------------ 
d$categorie: var
     categorie titre permanent
2158       var   IAM     false
2159       var Valer     false
------------------------------------------------------------------------------------ 
d$categorie: zoo
     categorie titre permanent
2160       zoo Aquar      true
2161       zoo Menag      true
> 
> (tmp2=do.call("rbind",tmp))
         categorie titre permanent
bro.1          bro Vide-     false
bro.2          bro March     false
var.2158       var   IAM     false
var.2159       var Valer     false
zoo.2160       zoo Aquar      true
zoo.2161       zoo Menag      true

1 个答案:

答案 0 :(得分:1)

给定的R代码是split-apply-combine范例的一个例子:

  • 按类别变量
  • 拆分data.frame
  • 为每个小组应用一项功能
  • 将结果合并到data.frame

在python中,您可以使用pandasgroupby执行相同的操作:

import pandas as pd
d = {'one' : [1., 2., 3., 4.],'two' : [1., 2., 3., 4.], 'group' : [1, 1, 2, 2]}
df = pd.DataFrame(d)
df.groupby(['group']).head(1)