我想按特定的列分组并汇总行数。以下面的数据框“ foo.txt”为例:
label type var1 var2
A name1 3 21
A name1 2 18
A name2 10 23
B name3 6 19
C name4 12 11
C name4 4 9
C name5 20 13
C name5 1 5
C name6 12 12
我希望按“标签”分组,并将“类型”的唯一行计为以下输出:
label number
A 2
B 1
C 3
通过使用dplyr
R包,我可以使用下面的代码来获取输出:
library(dplyr)
data <- read.table("foo.txt", header=T)
data
data2 <- data %>%
group_by(label) %>%
summarise(number=NROW(unique(type)))
as.data.frame(data2)
label number
1 A 2
2 B 1
3 C 3
在Python中,我想使用带有以下代码的dplython
模块执行相同的操作:
import pandas as pd
from dplython import *
data = pd.read_csv("foo.txt", sep="\t")
data = DplyFrame(data)
data2 = (data >>
group_by(X.label) >>
summarize(number=len(X.type.unique())))
data2
但是,我收到如下错误:
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
TypeError: object of type 'Later' has no len()
如何使用dplython获得相同的输出?提前致谢。
答案 0 :(得分:0)
我已切换到plydata
python模块,它对我有用。
from plydata import *
data2 = (data >>
group_by('contig') >>
define(strands = 'len(type.unique())')