我正在从R转换到Python。 我刚开始使用pandas。 我有一个很好的子集R代码: k1 <- subset(data, Product = p.id & Month < mn & Year == yr, select = c(Time, Product)) 现在,我想用Python做类似的东西。 这是我到目前为止: import pandas as pd data = pd.read_csv("../data/monthly_prod_sales.csv") #first, index the dataset by Product. And, get all that matches a given 'p.id' and time. data.set_index('Product') k = data.ix[[p.id, 'Time']] # then, index this […]
我一直在遇到我认为是一个错误。 这不是什么大问题,但是我很好奇,如果有人看到这个。 不幸的是,我的数据是保密的,所以我不得不做一个例子,这不会是非常有帮助的。 在对数据进行子集化时,偶尔会得到不在我原始数据框中的神秘NA行。 连rownames都是NA。 例如: example <- data.frame("var1"=c("A", "B", "A"), "var2"=c("X", "Y", "Z")) example var1 var2 1 AX 2 BY 3 AZ 然后我运行: example[example$var1=="A",] var1 var2 1 AX 3 AZ NA<NA> <NA> 当然,上面的例子实际上并没有给你这个神秘的NA行, 我在这里添加它来说明我的数据有问题。 也许这与我正在使用Google的read.xlsx包导入我的原始数据集,然后在子集化之前执行wide到long 的整形有关 。 谢谢
我有一个问题,用ggplot2绘制一个数据框的子集。 我的df就像: ID Value1 Value2 P1 100 12 P1 120 13 … P2 300 11 P2 400 16 … P3 130 15 P3 140 12 … 我现在如何绘制Value1和Value2仅用于ID P1和P3? 例如,我试过: ggplot(subset(df,ID=="P1 & P3") + geom_line(aes(Value1, Value2, group=ID, colour=ID))) 但我总是收到一个错误。 PS我也尝试了许多与P1和P3的组合,但我总是失败..
我一直在研究一些需要我做大量列表子集的项目,而在分析代码的时候,我意识到对列表进行子集化的对象[[nameHere]]方法通常比对象$ nameHere方法快。 作为一个例子,如果我们用命名组件创build一个列表: a.long.list <- as.list(rep(1:1000)) names(a.long.list) <- paste0("something",1:1000) 为什么是这样: system.time ( for (i in 1:10000) { a.long.list[["something997"]] } ) user system elapsed 0.15 0.00 0.16 比这更快: system.time ( for (i in 1:10000) { a.long.list$something997 } ) user system elapsed 0.23 0.00 0.23 我的问题是,这种行为是否真的是普遍的,我应该尽可能地避免$子集,或者最有效的select取决于其他因素?
有非常漂亮的方法来xts对象的子集。 例如,可以通过以下方式获取所有年份,月份,date的所有数据,但严格地在上午9点30分到下午4点之间: my_xts["T09:30/T16:00"] 或者你可以通过做两个date之间的所有观察: my_xts["2012-01-01/2012-03-31"] 或者在某个date之前/之后的所有date: my_xts["/2011"] # from start of data until end of 2011 my_xts["2011/"] # from 2011 until the end of the data 我怎样才能得到所有年份的所有数据只有特定的几个月,或者只有特定的几个月的数据? 还有其他的子集技巧吗?
我有一个R列表,有一万个元素。 说我只想select元素,5,7和9.我不知道如果没有for循环,我会怎么做。 我想要做一些像mylist[[c(5,7,9]]但是不起作用的东西,我也尝试了lapply函数,但是还没有得到这个工作。
可能重复: 从数据框中删除多个元素的标准方法 我知道在R中,如果你正在寻找另一个组的子集或基于id的匹配,你会使用类似的东西 subset(df1, df1$id %in% idNums1) 我的问题是如何做相反的事情,或者select不匹配一个ids向量的项目。 我试过使用! 但获取错误消息 subset(df1, df1$id !%in% idNums1) 我认为我的备份是这样做的: matches <- subset(df1, df1$id %in% idNums1) nonMatches <- df1[(-matches[,1]),] 但我希望有一些更有效率的东西。
我试图编写一个自定义的filter方法,它接受任意数量的kwargs,并返回一个包含类似数据库的列表中包含这些kwargs的元素的列表。 例如,假设d1 = {'a':'2', 'b':'3'}和d2 =相同的东西。 d1 == d2导致为真。 但是,假设d2 =相同的东西加上一堆其他的东西。 我的方法需要能够告诉d1是否在d2中 ,但Python不能用字典来实现。 语境: 我有一个Word类,每个对象都有像word , definition , part_of_speech等属性。 我想能够在这些单词的主要列表Word.objects.filter(word='jump', part_of_speech='verb-intransitive')滤器方法,如Word.objects.filter(word='jump', part_of_speech='verb-intransitive') 。 我无法弄清楚如何同时pipe理这些键和值。 但是对于其他人来说,这可能在这个环境之外具有更大的function
我想为一个名为Multiset的类创build不同的方法。 我有所有必需的方法,但我不确定如何编写交集,联合和子集方法。 对于交集和联合,我的代码是这样开始的: def intersect(var) x = Multiset.new end 这里是一个例子: X = [1, 1, 2, 4] Y = [1, 2, 2, 2] 那么X和Y的交点就是[1, 2] 。
我有一个从蝾螈胆量来的各种节肢动物的长度和宽度的数据框。 因为有些胆量有成千上万的猎物,我只测量了每种猎物types的一个子集。 我现在想用每个不可测量的个体来replace那个猎物的平均长度和宽度。 我想保持数据框,只是添加估算列(length2,width2)。 主要原因是每一行也有蝾螈收集date和地点的数据栏。 我可以用随机select的测量个体来填写NA,但是为了论证,我们假设我只想用平均值replace每个NA。 例如,假设我有一个像这样的数据框: id taxa length width 101 collembola 2.1 0.9 102 mite 0.9 0.7 103 mite 1.1 0.8 104 collembola NA NA 105 collembola 1.5 0.5 106 mite NA NA 事实上,我有更多的专栏和大约25种不同的分类群,总共有大约3万个猎物。 似乎plyr包可能是理想的,但我只是不知道如何做到这一点。 我不是很R或编程精明,但我试图学习。 不是说我知道自己在做什么,但是如果有帮助,我会尝试创build一个小数据集。 exampleDF <- data.frame(id = seq(1:100), taxa = c(rep("collembola", 50), rep("mite", 25), rep("ant", 25)), length = c(rnorm(40, […]