首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据现有列同时创建多个列

根据现有列同时创建多个列
EN

Stack Overflow用户
提问于 2022-10-02 20:20:59
回答 1查看 85关注 0票数 0

我有这张数据df

代码语言:javascript
复制
     name  class   
1     Bob  history
2   Chuck  math     
3   Daren  history  
4   Elisa  english 
5   Aaron  history 
6     Tom  math   
7     Dan  history 
8    Fred  english

我想同时创建两个新列(),,这是现有两列的字符长度。结果应该如下所示:

代码语言:javascript
复制
     name     class   name_len  class_len
1     Bob   history          3          7
2   Chuck      math          5          4
3   Daren   history          5          7
4   Elisa       art          5          3
5   Aaron   history          5          7
6     Tom      math          3          4 
7     Dan   history          3          7
8    Fred  business          4          8

我曾尝试使用“理解”一次生成列表,如下所示:

代码语言:javascript
复制
df[["1", "2"]] = [df[name].apply(len) for name in posts.columns]

但我得到

代码语言:javascript
复制
ValueError: Columns must be same length as key

我想做更复杂的操作,并从预先存在的列中创建许多新列,并且不希望手动创建每个新列一次。任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-02 20:25:47

不需要使用apply.str.len()应该工作:

代码语言:javascript
复制
for col in df.columns:
    df[f"{col}_len"] = df[col].str.len()

df
    name    class  name_len  class_len
1    Bob  history         3          7
2  Chuck     math         5          4
3  Daren  history         5          7
4  Elisa  english         5          7
5  Aaron  history         5          7
6    Tom     math         3          4
7    Dan  history         3          7
8   Fred  english         4          7
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73929073

复制
相关文章

相似问题

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