df=pd.DataFrame({'a':['重庆市重庆花园','北京市市教育中心']})如何删除列'a‘中行的重复字符,并将其设置为
['重庆市花园','北京市教育中心']而不是
['重庆市重庆花园','北京市市教育中心']谢谢!
发布于 2018-05-15 08:32:07
OrderedDict
您可以使用OrderedDict删除重复项而不会丢失顺序
from collections import OrderedDict
df['a'] = [''.join(OrderedDict.fromkeys(v)) for v in df['a']]
df
a
0 重庆市花园
1 北京市教育中心在python-3.6+上,您可以只使用标准字典-
df['a'] = [''.join(dict.fromkeys(v)) for v in df['a']]str.extractall + groupby + drop_duplicates
这是另一个丑陋的选择-
(df.a.str.extractall('(.)')[0]
.groupby(level=0)
.apply(pd.Series.drop_duplicates)
.groupby(level=0)
.agg(''.join)
)
0 重庆市花园
1 北京市教育中心
Name: 0, dtype: object发布于 2018-05-15 09:29:13
您可以使用
df.a.apply(list).apply(lambda x : ''.join(sorted(set(x), key=x.index)))
Out[169]:
0 重庆市花园
1 北京市教育中心
Name: a, dtype: objecthttps://stackoverflow.com/questions/50340761
复制相似问题