大熊猫在每一行中都是独一无二的

时间:2017-12-13 22:08:08

标签: python-2.7 pandas

Df有2列

DF:

fruit   location
apples  store,freezer,kitchen,livingroom,store,freezer,kitchen,livingroom
mango   store,freezer,kitchen,livingroom,store,freezer
orange  store,freezer,kitchen,freezer

我需要计算每个位置的数量,如果有多个只是将它们视为一个

代码

df['counts'] = df.location.str.strip().str.split(',').apply(len)

输出

fruit   location
apples  8
mango   6
orange  5

当我尝试使用独特的

代码

df['counts'] = df.location.str.strip().str.split(',').unique().apply(len)

错误

TypeError: unhashable type: 'list'

期望的输出

fruit   location
apples  4
mango   4
orange  3

1 个答案:

答案 0 :(得分:2)

使用apply + set + len

df.location.str.split(',').apply(lambda x : len(set(x)))
Out[147]: 
0    4
1    4
2    4
Name: location, dtype: int64