簡體   English   中英

根據條件計算唯一ID-熊貓

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM