【发布时间】:2016-07-08 01:30:28
【问题描述】:
我基本上是在尝试重现显示不同地点全年平均温度和降水量的气候图。
我通过以下方式从我的 csv 生成了一个数据透视表:
data = pd.read_csv("05_temp_rain_v2.csv")
pivot = data.pivot_table(["rain(mm)","temp(dC)"], ["loc","month"])
文本形式的样本数据:
loc,lat,long,year,month,rain(mm),temp(dC)
Adria_-_Bellombra,45.011129,12.034126,1994,1,45.6,4.6
Adria_-_Bellombra,45.011129,12.034126,1994,2,31.4,4
Adria_-_Bellombra,45.011129,12.034126,1994,3,1.6,10.7
Adria_-_Bellombra,45.011129,12.034126,1994,4,74.4,11.5
Adria_-_Bellombra,45.011129,12.034126,1994,5,26,17.2
Adria_-_Bellombra,45.011129,12.034126,1994,6,108.6,20.6
数据透视表:
由于我正在处理不同的位置,因此我正在迭代它们:
locations=pivot.index.get_level_values(0).unique()
for location in locations:
split=pivot.xs(location)
rain=split["rain(mm)"]
temp=split["temp(dC)"]
plt.subplots()
temp.plot(kind="line",color="r",).legend()
rain.plot(kind="bar").legend()
一个示例绘图输出如下所示:
为什么我的温度值是从 2 月 (2) 月开始绘制的?
我认为这是因为温度值列在第二列中。
从数据透视表中处理和绘制不同数据(两列)的正确方法是什么?
【问题讨论】:
-
如果您能以 text 形式提供示例数据,对您的帮助会更容易
-
当然!添加了示例数据。
标签: python python-3.x pandas matplotlib pivot-table