繁体   English   中英

Pandas:groupby 然后根据条件计数给出 NaN

[英]Pandas: groupby then count based on condition gives NaN

我有以下数据集:

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

我正在尝试按 ID 分组,然后计算每个组的New出现次数。 因此,例如,我将有a=1b=2c=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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM