图片中有以下数据框,我想绘制一个直方图,以显示任何给定年份(例如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'])


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

最佳答案

为了绘制任何特定年份(例如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])

10-07 12:35
查看更多