[英]Counting unique id's based on condition(s) - pandas
我有一個數據集,其中包含一堆唯一的ID,並希望獲得一個數值計數,這些ID中的多少個在content列中同時包含“原始”和“復制”。 另外,我將如何跨多個列執行此操作?
我知道如何在excel中做到這一點,但對python來說還很新,所以任何幫助都是超級有用的!
df:
user_id content_type status
1234 original pending
1234 copy blocked
4321 original blocked
4321 original distributed
5678 original blocked
5678 copy pending
輸出:
原始+副本= 2
原始+待定= 1
原始+被阻止= 2
等等..
具有“副本”的群組:
sum(df.groupby('user_id').apply(lambda x: 'copy' in x['content_type'].unique()))
(具有“ copy”的行的總和; True = 1和False = 0)
要么
df.groupby('user_id').apply(lambda x: x[x['content_type']=='copy']).shape[0]
按status
計數:
df[df['content_type'] == 'original'].groupby('status').size()
status
blocked 2
distributed 1
pending 1
或者,如果您想同時計算原件和副本,
df.groupby(['content_type','status']).size()
content_type status
copy blocked 1
pending 1
original blocked 2
distributed 1
pending 1
dtype: int64
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.