Re: [問題] groupby 找出可能的值

看板Python作者 (沛行)時間5年前 (2018/11/23 04:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
Hi, here's a one line solution for you :) import pandas as pd import numpy as np # Optional # if you only want to get the result, you can simply do: df.groupby('k1').agg({'k2': 'unique'}) # if you want to sort the values: df.groupby('k1').agg({'k2': 'unique'}).applymap(np.sort) Hope this would help. ※ 引述《HerryL (Hollander)》之銘言: : 各位前輩好, : 原始資料如 df : 我想做的是,對 k1、k2 groupby 後, : 依k1的順序把 k2 member 列出來(如 final_ans 的效果一樣) : 底下是我目前想到的方法,可是因為要用 for loop,資料量一大就要很久, : 請問,我有可能不透過 for loop 就可以求得 final_ans 醬的效果嗎? : 謝謝大家 ^_^ : ... 'k1':[1,1,1,1,2,2,2,3,3,3,3,3], : ... 'k2':[1,2,3,2,2,2,1,2,2,1,4,3], : ... 'v' :[4,5,6,5,4,6,5,4,5,6,7,8]}) : k1 k2 v : 0 1 1 4 : 1 1 2 5 : 2 1 3 6 : 3 1 2 5 : 4 2 2 4 : 5 2 2 6 : 6 2 1 5 : 7 3 2 4 : 8 3 2 5 : 9 3 1 6 : 10 3 4 7 : 11 3 3 8 : k1 k2 : 0 1 1 : 1 1 2 : 2 1 3 : 3 2 1 : 4 2 2 : 5 3 1 : 6 3 2 : 7 3 3 : 8 3 4 : ... final_ans.append( list( df2.k2[ df3.indices[j] ] )) : ... : [[1, 2, 3], [1, 2], [1, 2, 3, 4]] -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 81.250.134.182 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1542917840.A.AB7.html
文章代碼(AID): #1RzmxGgt (Python)
文章代碼(AID): #1RzmxGgt (Python)