在 python 中链接一系列进程

chain a sequence of processes in python

我想在 python 中链接一系列进程。这些过程之一是创建一些变量并使用 groupby 函数。

实际上,我想从我的原始数据库创建一个新的数据框。我可以在某些行中做到这一点,但我想要一些更简洁的使用链。我的原始数据库是 'df'。首先,我创建了一个新的二进制变量,指示特征 'var1' 是否具有特定属性:NaN 或非 NaN。

data = df
data['aux1'] = data['var1'].map(math.isnan)
data['count'] = 1 
pie = data.groupby(['aux1'])['count'].sum()

在 R 中,我可以这样做:

pie = df %>% select('var1') %>% mutate( aux1 = is.na('var1') , count = 1 ) 
          %>% group_by(aux1) %>% summarise(count = sum('count'))

python中有链吗?

您可以比较列 var1Series.isna and for count use Series.value_counts:

pie = data['var1'].isna().value_counts()

或通过 DataFrame.assign and aggregate GroupBy.size 创建列 aux1,不需要使用 1 的辅助列:

pie = data.assign(aux1=data['var1'].isna()).groupby('aux1').size()

但是可以创建列 count

pie = data.assign(aux1=data['var1'].isna(), count=1).groupby('aux1')['count'].sum()