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

标签 python csv numpy matplotlib

我要做的是使用 matplotlib、basemap、python 等在 map 上绘制特定 Storm 的纬度和经度值。我的问题是我正在尝试提取纬度、经度和名称 map 上的 Storm ,但我在尝试将列提取到列表中的第 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)

这是我收到的最后一条错误消息/回溯:

Traceback (most recent call last):
File "/home/darealmzd/lstorms.py", line 42, in

header = reader.next()
_csv.Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?

最佳答案

这看起来像是代码中的行尾问题。如果您打算使用所有这些其他科学软件包,您不妨使用 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()

关于python - 提取 csv 文件特定列以在 Python 中列出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19486369/

相关文章:

python - 将一个 Popen 的标准输出重定向到另一个 Popen 标准输入

python - 使用 SqlAlchemy 和 Marshmallow 反序列化带有嵌套对象的 JSON 字符串时出错

python - 从多个词典提取到 csv

python - 将分隔符分隔的字符串转换为 numpy 数组的有效方法

python - 在 python 中获取事件的 gtk 窗口

c++ - 使用 StrTk String Toolkit Library 编写 CSV 的示例

c - 如何用C多次写入一个文件?

python - 读取一个 matplotlib 图中的两个数据集

python - 如何反转 numpy 数组中具有特定大小的每个切片

python - 如何让 Pylance 的类型检查与此 Pydantic 示例一起使用?