【问题标题】:How to create Histograms in Panda Python Using Specific Rows and Columns in Data Frame如何使用数据框中的特定行和列在 Panda Python 中创建直方图
【发布时间】:2017-04-04 07:00:18
【问题描述】:

我在图片中有以下数据框,我想制作一个绘制直方图来显示世界上所有国家在任何给定年份(例如 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 pandas histogram data-science


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      • 2021-11-22
      • 2021-08-26
      • 1970-01-01
      相关资源
      最近更新 更多