【问题标题】:How to plot two specific columns from a csv file in python如何在python中从csv文件中绘制两个特定列
【发布时间】:2016-06-02 17:57:00
【问题描述】:

我是 python 新手,在尝试绘图时可能会遗漏一些细节。我正在尝试调用特定的 csv 文件并从文件中绘制两列。我已成功调用这些列并将不相关的值转换为 NaN。我现在正在尝试在折线图中绘制列以获得时间序列。我收到一个错误,我需要将其转换为我尝试过的浮点数,但它给了我一个错误,即浮点数必须是字符串或数字。我必须将 csv 文件中的值从字符串转换为列表以生成不相关的值,所以现在我必须将它们切换回绘图?一旦python正确读取了该列,我绘制它的方式是否正确?

import csv
import numpy as np
import matplotlib.pylab as plt
import pandas


def getColumn(filename, column):
    results = csv.reader(open(filename), dialect='excel')
    return [result[column] for result in results]

time = getColumn("C:\Users\dfmcg\Documents\Thesisfiles\ALL_GPMP_O3_Met\ASIS-MA.csv",1)

time = time[1:]
ozone = getColumn("C:\Users\dfmcg\Documents\Thesis files\ALL_GPMP_O3_Met\ASIS-MA.csv",2)
ozone = list(map(int,ozone[1:]))

for i in range (0,len(ozone)):
    if ozone[i] == -999:
        ozone[i] = np.nan
float(ozone)

x = ozone
y = time

plt.plot(x,y)
plt.show

缩写日期 O3 SWS VWS SWD VWD SDWD TMP RH RNF SOL CASA-GD 07/01/2005 00 -999 -999 -999
CASA-GD 07/01/2005 01 -999 -999 -999
CASA-GD 07/01/2005 02 -999 -999 -999
CASA-GD 07/01/2005 03 -999 -999 -999
CASA-GD 07/01/2005 04 -999 -999 -999
CASA-GD 07/01/2005 05 -999 -999 -999
CASA-GD 07/01/2005 06 -999 -999 -999
CASA-GD 07/01/2005 07 -999 -999 -999
CASA-GD 07/01/2005 08 -999 -999 -999
CASA-GD 07/01/2005 09 -999 -999 -999
CASA-GD 07/01/2005 10 -999 -999 -999
CASA-GD 07/01/2005 11 -999 -999 -999

【问题讨论】:

  • 您能否发布几行您的 csv 以及完整的错误消息?

标签: python numpy matplotlib plot floating-point


【解决方案1】:

你能用

检查你的列表元素的类型吗?
print type(ozone[0])  

也许你可以看到错误的来源

tldr cmets:臭氧值是整数类型,包含的 NaN 值是浮点数。似乎你不能绘制两种不同的类型。这可以通过将所有内容设置为浮动来解决

 [float(x) for x in ozone]

【讨论】:

  • 我刚刚得到错误:TypeError: float() argument must be a string or a number
  • 当我注释掉 float(ozone) 并按照你的建议做时,我发现类型是 Float
  • 遍历它,看看你的所有元素是否都在 for i in range (ozone.shape[0]) 中浮动:
  • 我收到错误:“列表”对象没有属性“形状”
  • 已被接受,您能再回答一个问题吗?我的代码现在无限运行,所以我可能添加了一个无限循环或其他东西。该文件很大但并不离谱,因此它应该快速运行并绘制,但事实并非如此。这是我的新代码:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多