【发布时间】:2018-01-17 17:08:19
【问题描述】:
我有一些看起来像这样的数据:
#date time temp press rh
09/10/2011 07:50 11.4 798.1 14.1
09/10/2011 08:00 11.9 798.3 13.6
...
09/10/2011 11:30 FALSE FALSE FALSE
09/10/2011 11:40 25.4 798.3 11.2
09/10/2011 11:50 23.2 799.1 11.2
.....
我想做一个“temp”的等高线图,x 轴为“时间”,y 轴为“日期”。
我尝试使用 Pandas 更好地处理日期和 NaN 值。
data=np.genfromtxt("dataFile.txt", comments="#", dtype='str')
header_names=['date', 'time', 'temp', 'press', 'rh']
df = pd.DataFrame(data, dtype=None, columns=header_names)
df['date']=pd.to_datetime(df['date'], format='%d/%m/%Y').dt.date
df.time=pd.to_datetime(df.time, format='%H:%M').dt.time
df.temp = pd.to_numeric(df.temp, errors='coerse')
....
dfMesh=df.pivot('date', 'time', 'temp')
X=dfMesh.columns.values
Y=dfMesh.index.values
Z=dfMesh.values
x,y=np.meshgrid(X, Y)
plt.contourf(x, y, Z)
但我收到以下错误:
Traceback(最近一次调用最后一次): 文件“./contourPlot_pandas.py”,第 33 行,在 x,y=np.meshgrid(X, Y) 文件“/Users/marybau/anaconda/lib/python3.6/site-packages/numpy/lib/function_base.py”, 第 4533 行,在网格中 return [x * mult_fact for x in output] 文件“/Users/marybau/anaconda/lib/python3.6/site-packages/numpy/lib/function_base.py”, 第 4533 行,在 return [x * mult_fact for x in output] TypeError: *: 'datetime.time' 和 'int
不支持的操作数类型
'
我也尝试了不同的其他方法来做到这一点而不使用熊猫,但由于date-time 格式或NaN,我最终遇到了类似的问题。有什么建议?谢谢!
【问题讨论】:
标签: python pandas matplotlib