我有一个这样的数据框:

name   . profession
Alex   . Data Analyst
Markus . Sales Manager
Carlos . Credit Analyst
Otavio . HR Manager
...


我需要知道这个数据框中有多少人在其职业中使用字符串“ Analyst”。答案应该是2。

我正在尝试使用groupbyget_group,但是我没有找到将其放入get_group语法的正确方法。

现在我在这里:

df.groupby('profession').get_group(???).agg('count')


有人可以建议正确的语法是什么,或建议另一种方法吗?

最佳答案

如果需要标量答案,可以使用以下命令:

df.profession.str.contains('Analyst').sum()


输出:

2


或作为带有groupby的数据框:

df.assign(is_analyst = df.profession.str.contains('Analyst'))\
  .groupby('is_analyst')['name']\
  .size()


输出:

is_analyst
False    2
True     2
Name: name, dtype: int64

08-19 21:43