Python 收集CSV文件中唯一元素的所有索引并将其填充到一行中

Python 收集CSV文件中唯一元素的所有索引并将其填充到一行中,python,indices,unique-values,Python,Indices,Unique Values,我在CSV文件中有一组数据,如下所示: [['1', '1.5', '1', '2', '1.5', '2'], ['2', '2.5', '3', '2.5', '3', '2.5'], ['3', '2.5', '1.5', '1', '1', '3'], ['1.5', '1', '2', '2', '2', '2.5'], ['1.5', '1.5', '1', '2.5', '1', '3']] 我想找到以升序列出的数据中的所有唯一条目。我尝试过以下代码: import cs

我在CSV文件中有一组数据,如下所示:

[['1', '1.5', '1', '2', '1.5', '2'],
 ['2', '2.5', '3', '2.5', '3', '2.5'],
 ['3', '2.5', '1.5', '1', '1', '3'],
 ['1.5', '1', '2', '2', '2', '2.5'],
 ['1.5', '1.5', '1', '2.5', '1', '3']]
我想找到以升序列出的数据中的所有唯一条目。我尝试过以下代码:

import csv
import numpy 

    dim1=[]                                                                        
    with open('D:/TABLE/unique_values.csv') as f1:
        for rows in f1.readlines():
            dim1.append(rows.strip().split(','))    
            
            
    uniqueValues = numpy.unique(dim1)
    print('Unique Values : ',uniqueValues)
它给了我这个输出:

Unique Values :  ['1' '1.5' '2' '2.5' '3']
我想在CSV文件的列中列出这些唯一的条目,并想针对每个唯一条目在一行中写入它们的运行索引。下面显示了所需的示例输出

样本输出


我尝试过其他numpy函数,但它们只返回第一次出现的唯一条目。此外,我还看到了其他相关文章,但它们没有填充一行中每个唯一元素的运行索引。

这对于标准库中的一些函数来说是相当直接的:
collections.defaultdict
csv.reader
itertools.count
。比如:

import csv
import collections 
import itertools

data = collections.defaultdict(list)                                                                        

index = itertools.count(1)
with open('D:/TABLE/unique_values.csv') as f1:
    reader = csv.reader(f1)

    for row in reader:
        for value in row:
            data[value].append(next(index))    
            
for unique_value, indices in data.items():
    print(f"{unique_value}:", *indices) 

对我来说,这似乎是一个相当模糊的转变。我不期望你能在numpy或者其他任何地方找到一个标准函数。不过,自己编写代码并不难。只需创建一个映射,其中的键是表中的每个值,值是包含关联键出现的每个位置的列表。您可以轻松地遍历输入表并构建它。那么,按照您希望新表的外观来编写地图的内容将是一件容易的事情。非常感谢。当我试图运行这段代码时,它发出了一个错误:“模块‘itertools’没有‘counter’属性”。这是什么意思?我可以看到您编辑了代码,但它仍然给出相同的错误。我有点困惑到底发生了什么。我在网上搜索了一下,在这里找到了关于itertools的相关信息()。我把Counter()改为count(),程序就运行了。谢谢:)