Python 如何分组和求和一个条件

Python 如何分组和求和一个条件,python,pandas,Python,Pandas,我有一个如下的数据帧 FAMILY TYPE REMARKS A A1 Valid A A1 Invalid A A1 Invalid A B2 Invalid A B2 Valid A B2 Valid 我应该如何使用groupby使其看起来像 FAMILY TYPE VALID INVALID A A1 1

我有一个如下的数据帧

FAMILY   TYPE   REMARKS
A        A1     Valid
A        A1     Invalid
A        A1     Invalid
A        B2     Invalid
A        B2     Valid
A        B2     Valid
我应该如何使用
groupby
使其看起来像

FAMILY   TYPE   VALID   INVALID
A        A1     1       2
A        B2     2       1
我试过了

df['VALID'] = df.groupby('TYPE')['REMARKS'].apply(lambda remark: remark == 'Valid')
但是结果没有分为两行,我该怎么做呢?

  • 使用
dfg=df.groupby(['FAMILY','TYPE','comments']).agg({'comments':'count'})。取消堆栈(级别=2)
dfg.columns=[n[1]表示dfg.columns中的n]#去掉多级列名
dfg.重置索引(就地=真)
#显示器(dfg)
族类型无效
0 A A1 2 1
1 A B2 1 2
  • 使用
dfg=df.groupby(['FAMILY','TYPE','comments']).agg({'comments':'count'})。取消堆栈(级别=2)
dfg.columns=[n[1]表示dfg.columns中的n]#去掉多级列名
dfg.重置索引(就地=真)
#显示器(dfg)
族类型无效
0 A A1 2 1
1 A B2 1 2

我们做的是
交叉表
+
重置索引
,它将按两列族进行计数,并键入备注

df=pd.crosstab([df.FAMILY, df.TYPE], df.REMARKS).reset_index()

我们做
crosstab
+
reset\u index
,它将按两列族进行计数,并键入备注

df=pd.crosstab([df.FAMILY, df.TYPE], df.REMARKS).reset_index()

pd.crosstab([df.FAMILY,df.TYPE],df.comments)
pd.crosstab
reset_index()
完成了任务,把它作为一个带有一些解释的答案发布,这样我就可以接受你的回答了好了~
pd.crosstab([df.FAMILY,df.TYPE],df.comments)
pd.crosstab
reset_index()完成了任务
,将其作为答案发布,并进行一些解释,以便我可以接受您的回答。好的,到此为止~