如何在 Panda Python 中使用数据框中的特定行和列创建直方图

How to create Histograms in Panda Python Using Specific Rows and Columns in Data Frame

我在图片中有以下数据框,我想绘制直方图来显示世界上所有国家在任何给定年份(例如2010年)的分布).

以下是我的代码table在清理以下代码后生成:

dataSheet = pd.read_excel("http://api.worldbank.org/v2/en/indicator/EN.ATM.CO2E.PC?downloadformat=excel",sheetname="Data")
dataSheet = dataSheet.transpose()
dataSheet = dataSheet.drop(dataSheet.columns[[0,1]], axis=1) ;
dataSheet = dataSheet.drop(['World Development Indicators', 'Unnamed: 2','Unnamed: 3'])

为了绘制任何给定年份(例如 2010 年)所有国家/地区的直方图,我将执行以下操作。在您的代码之后:

dataSheet = pd.read_excel("http://api.worldbank.org/v2/en/indicator/EN.ATM.CO2E.PC?    downloadformat=excel",sheetname="Data")
dataSheet = dataSheet.transpose()
dataSheet = dataSheet.drop(dataSheet.columns[[0,1]], axis=1)
dataSheet = dataSheet.drop(['World Development Indicators', 'Unnamed: 2','Unnamed: 3'])

我会通过将实际的国家/地区名称指定为列名称来重新组织列名称:

dataSheet.columns = dataSheet.iloc[1] # here I'm assigning the column names
dataSheet = dataSheet.reindex(dataSheet.index.drop('Data Source')) # here I'm re-indexing and getting rid of the duplicate row

然后我将再次转置数据框(为了安全起见,我将其分配给一个新变量):

df = dataSheet.transpose()

然后我会像以前一样分配新的列名,所以我们得到一个像样的数据框(尽管仍然不是最佳的),以国家/地区名称作为索引。

df.columns = df.iloc[0]
df = df.reindex(df.index.drop('Country Name'))

现在您终于可以绘制直方图了,例如2010 年:

import matplotlib.pyplot as plt
df[2010].plot(kind='bar', figsize=[30,10])