前言
环境
Python 3.8Pandas 1.4.4
注释
初始化数据
>>> import pandas as pd>>> df0 = pd.DataFrame(data=[{'name': '张三', 'tag': '跑步', 'title': 'MAN'}, {'name': '王二', 'tag': '足球;电影', 'title': '舅舅;舅舅'}] )>>> df0 name tag title 0 张三 跑步 MAN 1 王二 足球;电影 舅舅;舅舅
定义去重函数
def UniqItems(items: str): iset = set() for item in items.split(';'): item = item.strip() if not item: continue iset.add(item) return ';'.join(iset)
单列去重(将函数利用到某列的单元格)
>>> df1 = df0.copy()>>> df1['title'] = df1['title'].map(UniqItems)>>> df1 name tag title 0 张三 跑步 MAN 1 王二 足球;电影 舅舅
所有列去重(将函数利用到所有单元格)
>>> df1 = df0.copy()>>> df1 name tag title 0 张三 跑步 MAN 1 王二 足球;电影 舅舅;舅舅>>> df1.applymap(UniqItems) name tag title 0 张三 跑步 MAN 1 王二 足球;电影 舅舅
指定局部列去重(将函数利用到局部列的单元格)
>>> dfTmp = df0[['tag', 'title']]>>> dfTmp tag title 0 跑步 MAN 1 足球;电影 舅舅;舅舅>>> dfTmp = dfTmp.applymap(UniqItems)>>> dfTmp tag title 0 跑步 MAN 1 足球;电影 舅舅>>> df1 = df0.copy()>>> df1 name tag title 0 张三 跑步 MAN 1 王二 足球;电影 舅舅;舅舅>>> df1.update(dfTmp)>>> df1 name tag title 0 张三 跑步 MAN 1 王二 足球;电影 舅舅
本文出自 qbit snap