fatesses
2019-07-19 13:32
采纳率: 98%
浏览 1.8k

python 如何将一列数据中冒号后面的三个字符提出来并赋值到新的一列

python 如何将一列数据中冒号后面的三个字符提出来并赋值到新的一列
例子如下

新增:大大大 CPU:e52620v3
新增:嘻嘻嘻 CPU:e52620v3
新增:不不不 CPU:e52620v3 
新增:哈哈哈哈 CPU:e52620v3

这个列的列名为采购,
如何将这列数据中冒号后面的3位数提取出来?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 吃鸡王者 2019-07-21 15:41
    已采纳

    df=pd.read_excel('2019.7.xlsx')
    cc=df['摘要'].str.split(expand=True)
    dd=cc.iloc[:,0].str.split(':',expand=True)
    dd.iloc[:,1]

    点赞 打赏 评论
  • 风雨同ZZ 2019-07-20 01:22
    import re
    data=['新增:大大大 CPU:e52620v3','新增:嘻嘻嘻 CPU:e52620v3','新增:不不不 CPU:e52620v3', '新增:哈哈哈哈 CPU:e52620v3']
    for line in data:
        res = re.findall('[::]+(.{3})', line)
        for i in res:
            print(i, end=' ')
        print()
    

    打印出来的结果是:
    大大大 e52
    嘻嘻嘻 e52
    不不不 e52
    哈哈哈 e52

    主要就是遍历每一行数据,用正则的方式去匹配,匹配出来的数据根据自己的需求进行处理。

    点赞 1 打赏 评论
  • 东虫虾草 2019-07-19 14:07

    用index获取冒号的索引值

    list1 = ['大大大 CPU:e52620v3','啊啊啊 CPU:e52620v3','不不不 CPU:e52620v3']
    list2 = []
    
    for i in range(len(list1)):
        list2.append([])
        list2[i].append(list1[i])
        list2[i].append((list1[i][list1[i].index(':')+1:list1[i].index(':')+4]))
    
    print(list2)    
    

    结果

    [['大大大 CPU:e52620v3', 'e52'], ['啊啊啊 CPU:e52620v3', 'e52'], ['不不不 CPU:e52620v3', 'e52']]
    

    每一行分为两列,第二列存储冒号后三位

    如果只需要第二列,注释掉 list2[i].append(list1[i]) 即可

    点赞 打赏 评论
  • ct空白 2019-12-07 18:15

    ['导演: 弗兰克·德拉邦特', '导演: 比利·怀德', '导演: 吕克·贝松', '导演: 陈凯歌', '导演: 罗伯托·贝尼尼']这种我要怎么用正则提取冒号后面的数据,只要导演名字

    点赞 打赏 评论