我有一个pandas数据框my_df
。 animals
中的my_df
列具有数据类型' set'。然后我尝试使用以下代码检查此列animals
中有多少不同的值(集):
print(my_df.animals.unique())
但是出现了以下错误:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-13-e41c02e0e954> in <module>()
11
---> 12 print(my_df.animals.unique())
/usr/local/lib/python3.4/dist-packages/pandas/core/series.py in unique(self)
1237 @Appender(base._shared_docs['unique'] % _shared_doc_kwargs)
1238 def unique(self):
-> 1239 result = super(Series, self).unique()
1240 if is_datetime64tz_dtype(self.dtype):
1241 # to return array of Timestamp with tz
/usr/local/lib/python3.4/dist-packages/pandas/core/base.py in unique(self)
971 else:
972 from pandas.core.nanops import unique1d
--> 973 result = unique1d(values)
974 return result
975
/usr/local/lib/python3.4/dist-packages/pandas/core/nanops.py in unique1d(values)
809 else:
810 table = _hash.PyObjectHashTable(len(values))
--> 811 uniques = table.unique(_ensure_object(values))
812 return uniques
813
pandas/src/hashtable_class_helper.pxi in pandas.hashtable.PyObjectHashTable.unique (pandas/hashtable.c:14383)()
TypeError: unhashable type: 'set'
答案 0 :(得分:1)
我不确定这是你想要的,但你可以尝试一下:
In [135]: df
Out[135]:
animals
0 {1, 2}
1 {1, 2, 3}
2 {1, 2}
In [136]: df.animals.astype(str).unique()
Out[136]: array(['{1, 2}', '{1, 2, 3}'], dtype=object)