[英]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
我具有上述數據幀和要輸出的獨特組合colour
和num
列以及在對應的值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()
這將顯示每個返回狀態的出現次數,按num
和colour
分組:
colour num returned
grey 1 no 1
4 yes 1
red 2 no 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.