在 R 中,很容易聚合值并应用函数(在这种情况下,sum
)
> example <- c(a1=1,a2=2,b1=3,b2=4)
> example # this is the vector (equivalent to Series)
a1 a2 b1 b2
1 2 3 4
> grepl("^a",names(example)) #predicate statement
[1] TRUE TRUE FALSE FALSE
> sum(example[grep("^a",names(example))]) #combined into one statement
[1] 3
我能想到的在 pandas 中执行此操作的方法是使用列表推导而不是任何矢量化 pandas 函数:
In [55]: example = pd.Series({'a1':1,'a2':2,'b1':3,'b2':4})
In [56]: example
Out[56]:
a1 1
a2 2
b1 3
b2 4
dtype: int64
In [63]: sum([example[x] for x in example.index if re.search('^a',x)])
Out[63]: 3
熊猫中是否有任何等效的矢量化方法?