首页 > 解决方案 > 计算有条件的唯一熊猫数据框

问题描述

我有一个数据框:

df1 = pd.DataFrame({'sku': ['A0', 'A0', 'A2', 'A2', 'A2','A3', 'A3'],
                    'ID': ['10', 'T1', 'T1', 'T2', 'T2','10', '20']})

我想计算 ID 的唯一值,但仅限于以“T”开头时。期望的结果是:

sku
A0    1
A2    2
A3    0

请指教。

标签: pythonpandasdataframecount

解决方案


按 分组,sku然后将str.startswith函数应用于每个组的唯一ID系列,以计算以“T”开头的唯一 ID:

>>> df1.groupby('sku').apply(lambda g: pd.Series(g['ID'].unique()).str.startswith("T").sum())
sku
A0    1
A2    2
A3    0

推荐阅读