我有这个数据框架:
test = pd.DataFrame([{'a': 'b,c,d'},{'a': 'c,d'},{'a': 'd,c,d'}])
test
a
0 b,c,d
1 c,d
2 d,c,d 我想将列'a‘扩展为三个不同的新列。
我知道如何使用以下命令执行此操作:
test[['Column1', 'Column2','Column3']] = test['a'].str.split(',', expand=True)
a Column1 Column2 Column3
0 b,c,d b c d
1 c,d c d None
2 d,c,d d c d但是,我对使用pandas.assign函数的解决方案感兴趣。
我试过这一列,但我只恢复了第一列。
test = test.assign(a = lambda x: x['a'].str.split(',', expand = True))
test
a
0 b
1 c
2 d我该怎么做呢?
发布于 2018-01-22 08:19:54
如果你必须使用assign,你可以这样做:
df.assign(**dict(zip(['Column1','Column2','Column3'],
df.a.str.split(',',expand=True).values.T)))
Out[19]:
a Column1 Column2 Column3
0 b,c,d b c d
1 c,d c d None
2 d,c,d d c dhttps://stackoverflow.com/questions/48373002
复制相似问题