首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用pandas赋值将列表列展开为多列

使用pandas赋值将列表列展开为多列
EN

Stack Overflow用户
提问于 2018-01-22 07:57:19
回答 2查看 137关注 0票数 0

我有这个数据框架:

代码语言:javascript
运行
复制
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‘扩展为三个不同的新列。

我知道如何使用以下命令执行此操作:

代码语言:javascript
运行
复制
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函数的解决方案感兴趣。

我试过这一列,但我只恢复了第一列。

代码语言:javascript
运行
复制
test = test.assign(a = lambda x: x['a'].str.split(',', expand = True))

test

    a
0   b
1   c
2   d

我该怎么做呢?

EN

Stack Overflow用户

发布于 2018-01-22 08:19:54

如果你必须使用assign,你可以这样做:

代码语言:javascript
运行
复制
    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       d
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48373002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档