将 python 数据表列转换为列表列

Convert python datatable column into a list column

如何转换这个 python 数据表

have = dt.Frame(id=[1,1,2,2],val=["a","b","c","d"])

进入这个 python 数据表?

want = dt.Frame(id = [1,2], val=[["a","b"],["c","d"]], types=[dt.Type.int32,dt.Type.obj64])

具体来说,我试图在 pandas 中找到与此操作等效的数据表:

have = pd.DataFrame({"id":[1,1,2,2],"val":["a","b","c","d"]})
have.groupby("id")["val"].apply(list).reset_index()

   id     val
0   1  [a, b]
1   2  [c, d]

这是一个选项,但我希望有人能提供更好的解决方案:

dt.rbind([dt.Frame(
    id = i,
    val=have[f.id==i,f.val].to_list(),
    types=[dt.Type.int32, dt.Type.obj64]
) for i in np.unique(have["id"])])