Skip to main content
 首页 » 编程设计

python Pandas : How to unique strings in a column

2025年05月04日46dyllove98

我有一个这样的表:

col1 col2 
ben US-US-Uk 
Man Uk-NL-DE 
bee CA-CO-MX-MX 

我怎样才能使第 2 列中的值唯一,这意味着有一个这样的表?

col1 col2 
ben US-Uk 
Man Uk-NL-DE 
bee CA-CO-MX 

我已经试过了:

a.cc.str.split('-').unique() 

但出现以下错误:

TypeError: unhashable type: 'list' 

有人知道怎么做吗?

请您参考如下方法:

您可以使用 apply 调用 lambda 函数来拆分字符串,然后连接唯一值:

In [10]: 
 
df['col2'] = df['col2'].apply(lambda x: '-'.join(set(x.split('-')))) 
df 
Out[10]: 
  col1      col2 
0  ben     Uk-US 
1  Man  Uk-NL-DE 
2  bee  CA-CO-MX 

另一种方法:

In [22]: 
 
df['col2'].str.split('-').apply(lambda x: '-'.join(set(x))) 
 
Out[22]: 
0       Uk-US 
1    Uk-NL-DE 
2    CA-CO-MX 
Name: col2, dtype: object 

时间

In [24]: 
 
%timeit df['col2'].str.split('-').apply(lambda x: '-'.join(set(x))) 
%timeit df['col2'] = df['col2'].apply(lambda x: '-'.join(set(x.split('-')))) 
1000 loops, best of 3: 418 µs per loop 
1000 loops, best of 3: 246 µs per loop