簡體   English   中英

熊貓按兩列分組,並從第三列輸出值

[英]Pandas groupby two columns and output values from 3rd column

colour    num    accepted  returned
grey      1      yes       no
red       2      no        no
grey      4      yes       yes

我具有上述數據幀和要輸出的獨特組合colournum列以及在對應的值returned ,如以下

colour    num     returned
grey      1       no    
red       2       no      
grey      4       yes     

使用df.groupby(['colour', 'num']).size()給我唯一的組合,但沒有returned列。

如果您確定color和num的組合是唯一的,則可以執行以下操作:

df.groupby(['colour', 'num'])['returned'].max()

當然,如果它不是唯一的,並且同時存在“是”和“否”,則將返回“是”,因為“是”>“否” ...

但是實際上,此解決方案除了df[['colour','num','returned']].drop_duplicates() ,沒有其他任何東西,它肯定更精簡。

如果您以某種方式知道行可以重復, 但是返回的值是唯一的,並且同時希望它出現的次數和“ returned”中的唯一值,則可以一次性完成:

df.groupby(['colour','num'])['returned'].agg(['size','max'])

哪個會返回:

            size    max
colour  num     
grey    1   1       no
        4   1       yes
red     2   1       no

根據您的描述,我認為您也應該對returned列進行分組。

df.groupby(['colour','num','returned']).size()這將顯示每個返回狀態的出現次數,按numcolour分組:

colour  num  returned
grey    1    no          1
        4    yes         1
red     2    no          1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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