Python,从龙d绘制Pandas的枢轴表

2024-04-19 09:40:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个xls文件,数据以长格式组织。我有四列:变量名、国家名、年份和值。在

在Python中导入数据后,使用pandas.read_excel,我想绘制一个变量在不同国家的时间序列。为此,我创建了一个透视表,该表以宽格式转换数据。当我试图用matplotlib绘图时,我得到了一个错误

ValueError: could not convert string to float: 'ZAF'

(其中“ZAF”是一个国家的标签)

怎么了?在

代码如下:

^{pr2}$

包含原始数据的xls文件如下所示: raw data Excel view

enter image description here

这是我从二氧化碳数据中得到的产品信息()

<class 'pandas.core.frame.DataFrame'>
Index: 105 entries, ARE to ZAF
Data columns (total 16 columns):
(Value, 1990)    104 non-null float64
(Value, 1995)    105 non-null float64
(Value, 2000)    105 non-null float64
(Value, 2001)    105 non-null float64
(Value, 2002)    105 non-null float64
(Value, 2003)    105 non-null float64
(Value, 2004)    105 non-null float64
(Value, 2005)    105 non-null float64
(Value, 2006)    105 non-null float64
(Value, 2007)    105 non-null float64
(Value, 2008)    105 non-null float64
(Value, 2009)    105 non-null float64
(Value, 2010)    105 non-null float64
(Value, 2011)    105 non-null float64
(Value, 2012)    105 non-null float64
(Value, 2013)    105 non-null float64
dtypes: float64(16)
memory usage: 13.9+ KB
None

Tags: columns文件to数据pandasreadvalue格式
2条回答

我想您需要将参数values添加到pivot_table

data_CO2PROD = pd.pivot_table(data=data[(data['VAR']=='CC')], 
                              index='COU', 
                              columns='Year', 
                              values='Value')

data_CO2PROD.plot()
plt.show()

使用二氧化碳的数据生产图()而不是plt.绘图(data_CO2PROD)允许我绘制数据。http://pandas.pydata.org/pandas-docs/stable/visualization.html。 简单代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data= pd.DataFrame(np.random.randn(3,4), columns=['VAR','COU','Year','VAL'])
data['VAR'] = ['CC','CC','KK']
data['COU'] =['ZAF','NL','DK']
data['Year']=['1987','1987','2006']
data['VAL'] = [32,33,35]

data['Year'] = data['Year'].astype(str)
data['COU'] = data['COU'].astype(str)

# generate sub-datasets for specific VARs

data_CO2PROD = pd.pivot_table(data=data[(data['VAR']=='CC')], index='COU',    columns='Year')
data_CO2PROD.plot()
plt.show()

相关问题 更多 >