将 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"])])
如何转换这个 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"])])