Python 计算';s是一个特定的字符串,并由另一列进行分组

Python 计算';s是一个特定的字符串,并由另一列进行分组,python,pandas,numpy,Python,Pandas,Numpy,所以我在一个数据框中有两列,省和专业。我需要返回每个省“教师”项目的百分比(即,它将返回省份以及专业==“教师”所在省份的百分比行),因此我知道对于省部分的分组,它将使用groupby(),我在考虑教师的百分比,这将涉及价值计算,但我不知道如何将其作为该省参赛作品的百分比,而不是按省份分组的所有教师参赛作品的百分比。我有一种感觉。这相对简单,但我已经被困了一段时间。任何帮助都将是值得的关联。根据共享的信息,您可以尝试以下代码以获得结果: df=pd.DataFrame({'Profession'

所以我在一个数据框中有两列,省和专业。我需要返回每个省“教师”项目的百分比(即,它将返回省份以及专业==“教师”所在省份的百分比行),因此我知道对于省部分的分组,它将使用groupby(),我在考虑教师的百分比,这将涉及价值计算,但我不知道如何将其作为该省参赛作品的百分比,而不是按省份分组的所有教师参赛作品的百分比。我有一种感觉。这相对简单,但我已经被困了一段时间。任何帮助都将是值得的关联。

根据共享的信息,您可以尝试以下代码以获得结果:

df=pd.DataFrame({'Profession':['teacher','doctor','teacher','doctor','pilot','carpenter'],'Province':['BC','Vancouver','BC','Vancouver','BC','Vancouver']})
df_grouped = df.groupby(['Province','Profession']).size()
df_grouped.groupby(level=0).apply(lambda x: x/x.sum() * 100)

您可以将示例数据与您尝试的代码一起共享吗?