[英]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.