Pandas 只识别我的数据框中的一列 [重复]

Posted

技术标签:

【中文标题】Pandas 只识别我的数据框中的一列 [重复]【英文标题】:Pandas only recognizes one column in my data frame [duplicate] 【发布时间】:2019-01-23 13:40:06 【问题描述】:

我是 Python 新手。我有以下代码:

import wbdata # World Bank's API
import pandas
import matplotlib.pyplot as plt

#countries I want
countries = ["CL","UY","HU"]

#indicators I want
indicators = 'NY.GNP.PCAP.CD':'GNI per Capita'

#grab indicators above for countries I want and load into data frame
df = wbdata.get_dataframe(indicators, country=countries, convert_date=False)

#list the columns in data frame
list(df.columns.values)

我的数据框的输出和数据框中的列数如下:

In [1]:df
Out[1]: 
                GNI
country date         
Chile   2017  13610.0
        2016  13430.0
        2015  14270.0
        2014  15140.0
        2013  15360.0
        2012  14410.0
        2011  12380.0
              ...
Uruguay 2017  23410.0
        2016  11430.0
        2015  11270.0
        2014  11440.0
        2013  65360.0
        2012  94410.0
        2011  10380.0

[174 rows x 1 columns]

In [2]: list(df.columns.values)
Out[2]: ['GNI']

如您所见,数据框中只有一列(“GNI”)被识别为一列。

我该怎么做才能让 'country' 和 'date' 也被识别为列?

我的目标是拥有一个如下所示类型的面板数据集。其中有三个变量(=Stata 语言):国家、日期和 GNI。并且 Country 变量中不存在空白,因为每个 GNI 观察值对应于一个国家/地区日期组合。

Country Date   GNI   
Chile   2017  13610.0
Chile   2016  13430.0
Chile   2015  14270.0
Chile   2014  15140.0
Chile   2013  15360.0
Chile   2012  14410.0
Chile   2011  12380.0
              ...
Uruguay 2017  23410.0
Uruguay 2016  11430.0
Uruguay 2015  11270.0
Uruguay 2014  11440.0
Uruguay 2013  65360.0
Uruguay 2012  94410.0
Uruguay 2011  10380.0

[174 rows × 3 columns]

我当然是在扼杀 Python 语法和语言,但我们将不胜感激任何帮助或指导。

【问题讨论】:

df.reset_index(), IIUC Pandas 在CountryDate 上使用MultiIndex。由于这不是您想要的,您可以reset your indices。 【参考方案1】:

您仅将 GNI 视为列,因为 Country 和 Date 用作索引(准确地说是 MultiIndex)。

你需要的是reset_index:

df = df.reset_index(drop=False)

【讨论】:

感谢您的解释。 Pandas 中的索引有什么意义?我在网上和网上搜索过需要事先了解 Python 术语和数据结构的解释。 这可能是您问题的一个很好的参考:***.com/questions/27238066/… 我个人倾向于将不同的列视为“实体”,将行视为对该实体的观察,因此索引是观察的标签。例如,在时间序列中,您可能希望按日期引用观察

以上是关于Pandas 只识别我的数据框中的一列 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python - 正则表达式将数据框中的一列拆分为 2 [重复]

用第一个值减去熊猫数据框中的一列

如何在每个组中估算熊猫数据框中的一列[重复]

我在数据框中的一列(字符串+浮点数)中混合了值我如何将它们更改为对象 [重复]

应用一个函数来翻译熊猫数据框中的一列,条件是其他列

计算由另一列值分组的列值在 pandas 数据框中的共现