简体   繁体   English

从R到Python的By

[英]Equivalent of By from R to Python

I am new to python. 我是python的新手。 I will appreciate if someone can tell me how to wrap up a data table using by in python 如果有人可以告诉我如何在python中使用by来包装数据表,我将不胜感激

For example 例如

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

thanks in advance, 提前致谢,

From remarks I complete my post : 根据评论,我完成了我的文章:

 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

The given R code, is an example of split-apply-combine paradigm: 给定的R代码是split-apply-combine范例的示例:

  • split a data.frame by a the category variable 用类别变量分割data.frame
  • apply a function for each group 为每个组应用功能
  • combine the results into a data.frame 将结果合并到data.frame

In python , you can use pandas and groupby to do the same thing: 在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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM