簡體   English   中英

Python:將唯一值從 CSV 列添加到列表

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

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:
        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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM