作为python的初学者,我非常沮丧,因为经过数小时的研究后,我无法找到一个解决方案,可以在1分钟内在matlab,R或gnuplot中读取+绘制时间系列。
数据文件:
# id date value1 quality anothervalue value2
1 2011-05-19_16:30:19 974.3 3_1x NODATA 10E-4
...
我试过了:
import pandas as pd
import numpy as np
from pandas import Series, DataFrame, Panel
import matplotlib as mp
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
a,b,c,d,e,f = np.loadtxt("dataset.dat", unpack=True,
converters={ 1: mdates.strpdate2num('%Y-%m-%d_%H:%M:%S') })
plt.plot_date(x=b, y=c)
plt.show()
Python一直在失败,因为它试图自动将数据转换为float。所以我尝试使用转换器,但其他列失败了。根本没有情节。
python是如此严重的记录,以至于一个人不能在数小时后谷歌解决方案,或者我只是错过了那里真正有用的东西吗?
答案 0 :(得分:0)
不确定是否可以通过numpy获得所需的结果,因为它不适合不同类型的数组。但是当您导入pandas时,可以使用pd.read_csv
:
>>> from StringIO import StringIO
>>> s = """# id date value1 quality anothervalue value2
... 1 2011-05-19_16:30:19 974.3 3_1x NODATA 10E-4"""
>>> pd.read_csv(StringIO(s[2:]), sep='\s+',
... date_parser=mdates.strpdate2num('%Y-%m-%d_%H:%M:%S'),
... parse_dates=['date'])
id date value1 quality anothervalue value2
0 1 734276.68772 974.3 3_1x NODATA 0