首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python高效地绘制csv格式的表

使用Python高效地绘制csv格式的表
EN

Stack Overflow用户
提问于 2016-02-15 14:03:36
回答 2查看 7.8K关注 0票数 2

我正在尝试使用Python绘制一个csv格式的表。到目前为止,我能够通过在网站上阅读类似的问题来获得我想要的结果,但是我的解决方案看起来并不太"pythonic",我也没有找到一种非常简单的方法来做到这一点。我确信有一种更有效的方法来绘制一个表,所以我问这个问题是为了了解更多关于Python的知识,让其他人对同样的问题有一个直接的答案。下面是:

我有一个包含数据的表,其中有头和第一列。就我而言,分别是几个月和几年。即:

年,1月,2月,3月,APR,5月,6月,7月,8月,SEP,10月,11月,DIC 1998年,0.78,0.60,0.50,0.50,,,0.45 1999,0.40,0.30,0.28,0.22,0.26,0.50,0.52,0.76,0.89,0.85,0.74,0.67 2000,0.58,0.58,0.51,0.47,0.63,0.92,1.00,1.00,0.99,1.00,0.96,0.91 2001,0.86,0.83,0.80,0.71,0.83,0.98,1.05,1.11,1.09,0.99,0.87,0.80 .

正如您所看到的,也有丢失的数据。

我的解决办法如下:

代码语言:javascript
复制
import numpy as np
from matplotlib import pyplot as plt

#Import Data
Data=np.genfromtxt('LakeLevels.csv',delimiter=',',names=True,dtype=float)

#Extract data
Months=list(Data.dtype.names[1:])
Years=Data['Year']
Level=Data.view(dtype=float).reshape(Data.shape + (-1,))[:,1:]
Level_masked= np.ma.array (Level, mask=np.isnan(Level))

#Plot
fig=plt.pcolor(np.linspace(1,12,12),Years,Level_masked)
plt.colorbar()
plt.xticks(range(12),Months,rotation=45)

我发现这个解决方案太复杂了,不适合一个非常简单的任务。是否有更好的方法来实现相同的结果或代码的一部分,我可以改进?甚至可能是一个自动完成这个任务的函数。

提前谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2016-02-15 15:35:08

我将根据@Ami Tavory的答案发布我的最后解决方案。

代码语言:javascript
复制
import pandas as pd
import seaborn as sns

df = pd.read_csv('LakeLevels.csv', delimiter=',', index_col='Year')
sns.heatmap(df)

因此,通过使用这两个包(即熊猫和海运),我能够在两行得到我想要的结果!

诚挚的问候。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35411414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档