python - 计算有条件的唯一熊猫数据框
问题描述
我有一个数据框:
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
请指教。
解决方案
按 分组,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
推荐阅读
- python - 如果不满足条件,则比较数据框内容并更改列颜色
- kubernetes - Env Variable Array
- angular - I have a problem while running angular application
- wordpress - Memcached / Redis Wordpress Setup
- frontend - TYPO3 Extbase FE form - how to remove/delete inline relation
- python - Django get rid of duplicated queries in nested models
- xml - Is there a way to specify an alternate xsd source for a single namespace
- python - 使用偏移量时滚动窗口函数的意外结果
- c++ - how to define two dimensional string , not a char vector in C++
- python-3.x - How do I use lazy-loading in sqlalchemy core 1.4?