Re: [问题] groupby 找出可能的值

楼主: benson415 (沛行)   2018-11-23 04:17:17
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]]

Links booklink

Contact Us: admin [ a t ] ucptt.com