我是python新手,所以我尝试读取包含700行的csv,其中包含一个标题,并获得一个包含第一个csv列的唯一值的列表。你知道吗
示例CSV:
SKU;PRICE;SUPPLIER
X100;100;ABC
X100;120;ADD
X101;110;ABV
X102;100;ABC
X102;105;ABV
X100;119;ABG
我用了这个例子
How to create a list in Python with the unique values of a CSV file?
所以我做了以下工作:
import csv
mainlist=[]
with open('final_csv.csv', 'r', encoding='utf-8') as csvf:
rows = csv.reader(csvf, delimiter=";")
for row in rows:
if row[0] not in rows:
mainlist.append(row[0])
print(mainlist)
我注意到在调试中,行是1行而不是700行,我只得到
['SKU']字段我做错了什么?你知道吗
谢谢
如果需要第一列的唯一值,可以修改代码以使用
set
而不是list
。可能是这样的:既不使用
pandas
也不使用csv
的解决方案:或者,使用
map
(但可读性较差):使用熊猫的解决方案。您需要对正确的列调用
unique
方法,这将返回该列中具有唯一值的pandas系列,然后使用tolist
方法将其转换为列表。你知道吗下面
SKU
列的示例。你知道吗如果您不知道/不关心列名,可以在正确的列数上使用
iloc
。请注意,计数索引从0开始:如果问题的目的是只获取出现一次的值,那么可以使用
value_counts
方法。这将创建一个系列,索引为SKU
的值,计数为值,然后必须以类似的方式将系列的索引转换为列表。使用第一个示例:相关问题 更多 >
编程相关推荐