Python 熊猫:groupby然后根据条件进行计数

Python 熊猫:groupby然后根据条件进行计数,python,pandas,data-analysis,Python,Pandas,Data Analysis,我有以下数据集: +----+------+ | ID | Type | +----+------+ | a | New | +----+------+ | b | Old | +----+------+ | b | Old | +----+------+ | b | New | +----+------+ | c | Old | +----+------+ 我正在尝试按ID分组,然后计算每个组的新出现次数。例如,我会有a=1,b=2,和c=0 以下是我尝试过的: df['

我有以下数据集:

+----+------+
| ID | Type |
+----+------+
| a  | New  |
+----+------+
| b  | Old  |
+----+------+
| b  | Old  |
+----+------+
| b  | New  |
+----+------+
| c  | Old  |
+----+------+
我正在尝试按ID分组,然后计算每个组的新出现次数。例如,我会有
a=1
b=2
,和
c=0

以下是我尝试过的:

df['NewAmount'] = df.groupby('ID')['Type'].apply(
    lambda x: x[x == 'New'].count())
我明白了:

+----+------+----------+
| ID | Type | NewAmount|
+----+------+----------+
| a  | New  | NaN      |
+----+------+----------+
| b  | Old  | NaN      |
+----+------+----------+
| b  | Old  | NaN      |
+----+------+----------+
| b  | New  | NaN      |
+----+------+----------+
| c  | Old  | NaN      |
+----+------+----------+

您应该尝试使用
transform

df['out'] = df['Type'].eq('New').groupby(df['ID']).transform('sum')

谢谢,它起作用了。10分钟后接受吗?你能解释一下为什么你在转换中使用了
sum
而不是
count
吗?@mokilliilo因为我使用前面的等式,该项是新的,它将返回True,在groupby之后,我们可以求和它是多少True,它将等于进行计数~