[英]Modify series from other series objects
所以我有这样的数据:
Id Title Fname lname email
1 meeting with Jay, Aj Jay kay jk@something.com
1 meeting with Jay, Aj Aj xyz aj@something.com
2 call with Steve Steve Jack st@something.com
2 call with Steve Harvey Ray h@something.com
3 lunch Mike Mil Mike m@something.com
我想从“标题”中删除每个唯一ID的名字和姓氏。 我尝试按ID进行分组,从而为Title,Fname,Lname等提供了一系列对象
df.groupby('Id')
我已经将Fname与.agg(lambda x: x.sum() if x.dtype == 'float64' else ','.join(x))
连接在一起
并保存在concated
数据框中。
同样,所有其他列也将汇总。 问题是如何根据此汇总系列替换“标题”中的值。
concated['newTitle'] = [ concated.Title.str.replace(e[0]).replace(e[1]).replace(e[1])
for e in
zip(concated.FName.str.split(','), concated.LName.str.split(','))
]
我想要这样或其他方式,对于每个Id,我都可以获得带有替换值的newTitle。
输出如下:
Id Title
1 Meeting with ,
2 call with
3 lunch
通过连接Fname和lname并替换来创建一个映射器系列,
s = df.groupby('Id')[['Fname', 'lname']].apply(lambda x: '|'.join(x.stack()))
df.set_index('Id')['Title'].replace(s, '', regex = True).drop_duplicates()
Id
1 meeting with ,
2 call with
3 lunch
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.