创建包含3个列的新列

2024-09-28 03:21:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在一个包含3个不同列的数据框中创建一个新列。我想在删除非字母表(如果有那么长的话)后,保留姓氏的前5个字母,或者只保留姓氏、姓氏的前2个字母和一个附加到末尾的代码

下面的代码不工作,但那是我的地方,它不接近工作

df['namecode'] = df.Last.str.replace('[^a-zA-Z]', '')[:5]+df.First.str.replace('[^a-zA-Z]', '')[:2]+str(jr['code'])



Name  lastname  code   namecode

jeff White 0989 Whiteje0989

Zach Bunt 0798  Buntza0798

ken Black 5764  Blackke5764

Tags: 数据代码df地方字母codereplace字母表
1条回答
网友
1楼 · 发布于 2024-09-28 03:21:35

这里有一种方法

使用pandas^{}而不是尝试进行字符串索引

例如:

作为pd导入

df = pd.DataFrame(
    {
        'First': ['jeff', 'zach', 'ken'],
        'Last': ['White^', 'Bun/t', 'Bl?ack'],
        'code': ['0989', '0798', '5764']
    }
)
print(df['Last'].str.replace('[^a-zA-Z]', '').str.slice(0,5)
      + df['First'].str.slice(0,2) + df['code'])
#0    Whiteje0989
#1     Buntza0798
#2    Blackke5764
#dtype: object

相关问题 更多 >

    热门问题