python 如何将一列数据中冒号后面的三个字符提出来并赋值到新的一列
例子如下
新增:大大大 CPU:e52620v3
新增:嘻嘻嘻 CPU:e52620v3
新增:不不不 CPU:e52620v3
新增:哈哈哈哈 CPU:e52620v3
这个列的列名为采购,
如何将这列数据中冒号后面的3位数提取出来?
df=pd.read_excel('2019.7.xlsx')
cc=df['摘要'].str.split(expand=True)
dd=cc.iloc[:,0].str.split(':',expand=True)
dd.iloc[:,1]
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
主要就是遍历每一行数据,用正则的方式去匹配,匹配出来的数据根据自己的需求进行处理。
用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]) 即可
['导演: 弗兰克·德拉邦特', '导演: 比利·怀德', '导演: 吕克·贝松', '导演: 陈凯歌', '导演: 罗伯托·贝尼尼']这种我要怎么用正则提取冒号后面的数据,只要导演名字