删除pandas中的重复中文字符

时间:2018-05-15 00:28:42

标签: python string pandas dataframe duplicates

df=pd.DataFrame({'a':['重庆市重庆花园','北京市市教育中心']})

如何删除列'a'中行的重复字符,并将其设为

['重庆市花园','北京市教育中心']

而不是

['重庆市重庆花园','北京市市教育中心']

谢谢!

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

您可以使用

Sub removepdfword()
Dim str As String
Dim row As Long
row = 1
str = Sheet1.Range("A" & CStr(row))


Do While Sheet1.Range("A" & CStr(row)) <> ""

If Right(str, 4) = ".pdf" Then
     str = Replace(str, ".pdf", Left(str, Len(str) - 4))
     'str = Left(str, Len(str) - 4)
     MsgBox str
Else
End If
row = row + 1
Loop

End Sub