在python中链接一系列进程

在python中链接一系列进程,python,pandas,method-chaining,Python,Pandas,Method Chaining,我想用python链接一系列进程。这些过程之一是创建一些变量并使用groupby函数 实际上,我想从我的原始数据库中创建一个新的数据帧。我可以做一些行,但我想一些更简洁的使用链。我的原始数据库是“df”。首先,我创建一个新的二进制变量,指示功能“var1”是否具有某些属性:NaN ou non NaN data=df 数据['aux1']=data['var1'].map(math.isnan) 数据['count']=1 pie=data.groupby(['aux1'])['count'].

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

实际上,我想从我的原始数据库中创建一个新的数据帧。我可以做一些行,但我想一些更简洁的使用链。我的原始数据库是“df”。首先,我创建一个新的二进制变量,指示功能“var1”是否具有某些属性:NaN ou non NaN

data=df
数据['aux1']=data['var1'].map(math.isnan)
数据['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中是否有一些链?

您可以将列
var1
与计数进行比较:

或者创建列
aux1
by并聚合,不需要带有
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()

但首先,我需要创建aux1。此变量是指示性的:如果“var1”为NaN或非NaN。我可以在同一行代码中创建'aux1'吗?
pie = data.assign(aux1=data['var1'].isna(), count=1).groupby('aux1')['count'].sum()