[英]Python: Add unique values from a CSV column to list
我正在查看一个 CSV ,其中列出了各个港口之间的货物运输清单,我想将港口的所有唯一值放入一个新列表中。
目前,我有以下内容,它在“原始端口”列下添加了每个值,我如何确保它只在该列下添加唯一值? 谢谢你。
import csv
CSV_FILE = "Bitumen2021Exports.csv"
ports = []
with open(CSV_FILE, encoding="utf-8-sig") as bitumen_csv:
bitumen_reader = csv.DictReader(bitumen_csv)
for port in bitumen_reader:
ports.append(port['ORIGIN PORT'])
print(ports)
基于您的代码的一种方法:
import csv
CSV_FILE = "Bitumen2021Exports.csv"
ports = []
with open(CSV_FILE, encoding="utf-8-sig") as bitumen_csv:
bitumen_reader = csv.DictReader(bitumen_csv)
for port in bitumen_reader:
if port['ORIGIN PORTS'] not in ports:
ports.append(port['ORIGIN PORTS'])
print(ports)
另一种方法是将 csv 导入pandas
df 并使用column.unique()
。
您也可以跳过处理“唯一性逻辑”并使用 Python 的set ,它只允许唯一元素:
import csv
CSV_FILE = "Bitumen2021Exports.csv"
ports = set()
with open(CSV_FILE, encoding="utf-8-sig") as bitumen_csv:
bitumen_reader = csv.DictReader(bitumen_csv)
for port in bitumen_reader:
ports.add(port['ORIGIN PORTS'])
print(ports)
Ports 是一个集合,是一个可迭代的,或者如果需要,可以转换为一个列表list(ports)
。
一个小的变化来展示如何使用集合理解:
import csv
CSV_FILE = "Bitumen2021Exports.csv"
with open(CSV_FILE, encoding="utf-8-sig") as bitumen_csv:
ports = {port['ORIGIN PORT'] for port in csv.DictReader(bitumen_csv)}
print(ports)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.