Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数据帧计数唯一列表_Python_Pandas_Dataframe - Fatal编程技术网

Python 数据帧计数唯一列表

Python 数据帧计数唯一列表,python,pandas,dataframe,Python,Pandas,Dataframe,如果数据帧中列的类型为int、float或string,则可以使用columnName.unique()获取其唯一值。 但如果此列是一个列表,例如[1,2,3],该怎么办。 如何获得本专栏的unique df = pd.DataFrame({'col':[[1,1,2],[2,1,3,3],[1,1,2],[1,1,2]]}) print (df) col 0 [1, 1, 2] 1 [2, 1, 3, 3] 2 [1, 1, 2] 3 [1,

如果数据帧中列的类型为
int
float
string
,则可以使用
columnName.unique()
获取其唯一值。 但如果此列是一个列表,例如[1,2,3],该怎么办。
如何获得本专栏的
unique

df = pd.DataFrame({'col':[[1,1,2],[2,1,3,3],[1,1,2],[1,1,2]]})
print (df)
            col
0     [1, 1, 2]
1  [2, 1, 3, 3]
2     [1, 1, 2]
3     [1, 1, 2]

print (df['col'].apply(tuple).unique())

[(1, 1, 2) (2, 1, 3, 3)]

L = [list(x) for x in df['col'].apply(tuple).unique()]
print (L)

[[1, 1, 2], [2, 1, 3, 3]]

不能将
unique()
应用于列表等不可散列类型。要做到这一点,您需要转换为哈希类型

使用最新版本的pandas的更好解决方案是使用
duplicated()
,避免再次迭代要转换为列表的值

df[~df.col.apply(tuple).duplicated()]

这将以列表的形式返回唯一值。

获取值并将其展平。然后您想知道每个列表的唯一元素,还是整个列表都是唯一的?我想获取唯一列表,而不是列表中的唯一值。很抱歉,可能我的描述不清楚。我想获得唯一列表,而不是此列中的唯一值。好的,您可以创建示例数据-5行预期输出吗?例如,如果列“col”是[[1,2,3],[1,2,3],[3,4,5],[1,2,3]],那么结果应该是[[1,2,3],[3,4,5]。是的,这看起来效率更高。