使用groupby对pandas中的特定条件计算列中的值数

黎明.萨希尔

我有一个看起来像这样的数据框:

dfA
name    field    country    action
Sam     elec     USA        POS
Sam     elec     USA        POS
Sam     elec     USA        NEG
Tommy   mech     Canada     NEG
Tommy   mech     Canada     NEG
Brian   IT       Spain      NEG
Brian   IT       Spain      NEG
Brian   IT       Spain      POS

我想根据前 3 列对数据框进行分组,添加一个新列“No of data”。这是我使用它做的事情:

dfB = dfA.groupby(["name", "field", "country"], dropna=False).size().reset_index(name = "No_of_data")

这给了我一个新的数据框,它看起来像这样:

dfB
name    field    country   No_of_data
Sam     elec     USA           3
Tommy   mech     Canada        2
Brian   IT       Spain         3

但是现在我还想向这个特定的数据帧添加一个新列,它告诉我“名称”、“字段”和“国家”的每个组合的“POS”数量的计数是多少。应该是这样的:

dfB
name    field    country   No_of_data   No_of_POS
Sam     elec     USA           3            2
Tommy   mech     Canada        2            0
Brian   IT       Spain         3            1

当我没有关于“POS NEG”的信息并且需要从 dfA 获取时,如何将新列 (No_of_POS) 添加到表 dfB。

尼古拉·佐特科

您可以在aggregate方法中使用带有函数的字典

dfA.groupby(["name", "field", "country"], as_index=False)['action']\
.agg({'No_of_data': 'size', 'No_of_POS': lambda x: x.eq('POS').sum()})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

对于sql中的特定条件,同一列中的数据总和如何计算?

编写通用函数以基于熊猫中另一个列的值来计算基于列的特定条件

计算列表中符合特定条件的元素

如果符合特定条件,如何从文本文件中查找列中的值总和

如何计算满足R中特定条件的每列(按组)中的行数

如果一组特定列中的值满足特定条件,则返回整行

如何根据特定条件替换列中的某些值?

如何根据特定条件替换Pandas Dataframe中特定列的特定值?

计算与Cypher聚合中符合特定条件的记录比例

在使用SQLAlchemy的组合查询中,如何计算符合特定条件的自引用关系的数量?

计算不同表中的行并按特定条件分组

计算Pandas数据框中符合特定条件的行数

使用基于for循环的pandas中的多个特定条件来计算多个列

根据对列中每个不同值具有特定条件的行,在Pandas Dataframe中计算perc

在特定条件下计算数组中的值

在Pandas数据框中更快地根据特定条件计算滚动事件

在计算与特定条件匹配的列中的值之间的差异时需要帮助

如何计算满足R中特定条件的每一列的行数

计算满足特定条件的postgreSQL表中的项目

计算列表中满足特定条件的值

如何计算符合特定条件的值?

如何计算“ group by”组中满足特定条件的行数

pandas groupby:在特定条件下计算记录数

特定条件下Mysql中的计算

如何在ORACLE中累积特定列并在特定条件下释放值

根据上一行中具有特定条件的列之一的值创建新行 - pandas 或 numpy

根据pandas中的特定条件删除特定行

计算具有特定条件的数据中的总 id

满足特定条件后在列中查找值