簡體   English   中英

提取 csv 文件特定的列以在 Python 中列出

[英]Extract csv file specific columns to list in Python

我想要做的是使用 matplotlib、底圖、python 等在地圖上繪制特定風暴的緯度和經度值。我的問題是我試圖提取風暴的緯度、經度和名稱map 但我在第 41-44 行之間不斷出現錯誤,我嘗試將列提取到列表中。 有人可以幫我解決這個問題。 提前致謝。

這是文件的樣子:

1957,AUDREY,HU, 21.6N, 93.3W
1957,AUDREY,HU,22.0N,  93.4W
1957,AUDREY,HU,22.6N,  93.5W
1957,AUDREY,HU,23.2N,  93.6W

我希望列表如下所示:

latitude = [21.6N,22.0N,23.4N]
longitude = [93.3W, 93.5W,93.8W]
name = ["Audrey","Audrey"]

這是我到目前為止所擁有的:

data = np.loadtxt('louisianastormb.csv',dtype=np.str,delimiter=',',skiprows=1)
'''print data'''

data = np.loadtxt('louisianastormb.csv',dtype=np.str,delimiter=',',skiprows=0)

f= open('louisianastormb.csv', 'rb')
reader = csv.reader(f, delimiter=',')
header = reader.next()
zipped = zip(*reader)

latitude = zipped[3]
longitude = zipped[4]
names = zipped[1]
x, y = m(longitude, latitude)

這是我收到的最后一條錯誤消息/回溯:

回溯(最近一次調用最后一次):
文件“/home/darealmzd/lstorms.py”,第 42 行,在

標頭 = reader.next()
_csv.Error:在未加引號的字段中看到換行符 - 您是否需要以通用換行符模式打開文件?

這看起來像是代碼中的行尾問題。 如果您打算使用所有這些其他科學包,您也可以將Pandas用於 CSV 讀取部分,它比csv模塊更強大、更有用:

import pandas
colnames = ['year', 'name', 'city', 'latitude', 'longitude']
data = pandas.read_csv('test.csv', names=colnames)

如果您想要問題中的列表,您現在可以執行以下操作:

names = data.name.tolist()
latitude = data.latitude.tolist()
longitude = data.longitude.tolist()

標准庫版本(沒有熊貓)

這假設 csv 的第一行是標題

import csv

# open the file in universal line ending mode 
with open('test.csv', 'rU') as infile:
  # read the file as a dictionary for each row ({header : value})
  reader = csv.DictReader(infile)
  data = {}
  for row in reader:
    for header, value in row.items():
      try:
        data[header].append(value)
      except KeyError:
        data[header] = [value]

# extract the variables you want
names = data['name']
latitude = data['latitude']
longitude = data['longitude']
import csv
from sys import argv

d = open("mydata.csv", "r")

db = []

for line in csv.reader(d):
    db.append(line)

# the rest of your code with 'db' filled with your list of lists as rows and columbs of your csv file.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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