Python 如何使用Groupby计算pandas中两列中符合条件的行数

Python 如何使用Groupby计算pandas中两列中符合条件的行数,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有一个包含多列的数据框,其中4列是car,company\u name,id,和status。每个汽车都有一个相关的公司名称和状态,每个公司名称都链接到一个唯一的ID。一种可能的状态是租来的,我正试图统计每家公司租来的车的数量(在一个名为“租来的车”的新栏中),我一直在尝试使用他们唯一的ID来这样做 我尝试过使用groupby并应用,但没有成功 df['# of Rented Cars'] = df.groupBy('unique_id')['status'].apply(lambda x:

我有一个包含多列的数据框,其中4列是
car
company\u name
id
,和
status
。每个
汽车
都有一个相关的
公司名称
状态
,每个
公司名称
都链接到一个唯一的
ID
。一种可能的状态是租来的,我正试图统计每家公司租来的车的数量(在一个名为“租来的车”的新栏中),我一直在尝试使用他们唯一的ID来这样做

我尝试过使用
groupby
并应用,但没有成功

df['# of Rented Cars'] = df.groupBy('unique_id')['status'].apply(lambda x: (x=='Rented').sum())
以下表为例,您可以在“出租汽车”列中看到我想要的值:


但是使用上面的代码,我只得到最后一列中所有值的值Nan。

我想您正在寻找
转换

df['# of Rented Cars'] = df.groupBy('unique_id')['status'].transform(lambda x: (x=='Rented').sum())
或不带
lambda

df['# of Rented Cars'] = df['status'].eq('Rented').groupBy(df['unique_id']).transform('sum')

我认为您正在寻找
transform

df['# of Rented Cars'] = df.groupBy('unique_id')['status'].transform(lambda x: (x=='Rented').sum())
或不带
lambda

df['# of Rented Cars'] = df['status'].eq('Rented').groupBy(df['unique_id']).transform('sum')