mik*_*ez1 29 python csv numpy matplotlib
我要做的是使用matplotlib,底图,python等在地图上绘制特定风暴的纬度和经度值.我的问题是我正在尝试提取风暴的纬度,经度和名称我继续在第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
Run Code Online (Sandbox Code Playgroud)
我希望列表如下所示:
latitude = [21.6N,22.0N,23.4N]
longitude = [93.3W, 93.5W,93.8W]
name = ["Audrey","Audrey"]
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所拥有的:
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)
Run Code Online (Sandbox Code Playgroud)
这是我收到的最后一条错误消息/追溯:
回溯(最近一次调用最后一次):
文件"/home/darealmzd/lstorms.py",第42行,header = reader.next()
_csv.Error:在不带引号的字段中看到的换行符 - 是否需要以通用换行模式打开文件?
cht*_*mon 56
这看起来像代码中的行结尾有问题.如果您将要使用所有这些其他科学软件包,您也可以将Pandas用于CSV读取部分,这比仅仅csv模块更强大且更有用:
import pandas
colnames = ['year', 'name', 'city', 'latitude', 'longitude']
data = pandas.read_csv('test.csv', names=colnames)
Run Code Online (Sandbox Code Playgroud)
如果您想要问题中的列表,您现在可以:
names = data.name.tolist()
latitude = data.latitude.tolist()
longitude = data.longitude.tolist()
Run Code Online (Sandbox Code Playgroud)
Ben*_*ate 40
这假设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']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
113778 次 |
| 最近记录: |