![](/img/trans.png)
[英]Get the row index and column index of maximum value from Pandas DataFrame
[英]Get index value from pandas dataframe
直接调用索引
return countries.index[2]
但是你在这里发布的内容看起来像一个熊猫数据框而不是一个系列 - 如果是这样的话
countries['Country_Name'].iloc[2]
这正是我的疑问! 阅读其他回复帮助我找到了这个答案。
正如其他回答者所提到的,所呈现的表结构看起来像您有一个包含两列的数据框,一列用于 'Country_Names',另一列用于值,在这种情况下,索引将默认为 [0, 1 ... n]。
但是,您的示例代码return countries.iloc[2] #7.542
建议您有一个系列,因为它只返回一个标量值,而不是一个带有索引和数据类型的键:值对(见下文)。
因此,让我们假设您有一个数据框,如您所说,有一列值和“Country_Names”作为索引。 我将向值列添加一个名称并添加第二个值列:
countries = pd.DataFrame({'Country_Names': ['China', 'United States', 'Japan', 'United Kingdom', 'Russian Federation', 'Brazil'],
'Values1': [1.5, 10.53, 7.542, 3.487, 6.565, 8.189],
'Values2': [1,2,3,4,5,6]}).set_index('Country_Names')
print(countries)
# Values1 Values2
# Country_Names
# China 1.500 1
# United States 10.530 2
# Japan 7.542 3
# United Kingdom 3.487 4
# Russian Federation 6.565 5
# Brazil 8.189 6
顺便说一下,数据帧的每一列都是一个系列,与其所属的数据帧共享一个索引。 也就是说,你可以只有一列,它仍然是一个数据框,尽管访问第一列会返回一个系列(见下文)。
数据框和系列都具有共同的索引属性以及其他属性。
countries.index[2] #The 3rd index of the dataframe:
# 'Japan'
countries['Values1'].index[2] #The 3rd index of the 1st column (which is a series)
# 'Japan'
countries.iloc[2] #The 3rd row of the dataframe.
# Values1 7.542
# Values2 3.000
# Name: Japan, dtype: float64
countries['Values1'].iloc[2] #The 3rd row of the 1st column (which is a series)
# 7.542
现在,如果您实际上只是在处理系列(如您的代码所建议的那样)而不是数据框,则它看起来像这样:
Country_Names = ['China', 'United States', 'Japan', 'United Kingdom', 'Russian Federation', 'Brazil']
countries = pd.Series([1.5, 10.53, 7.542, 3.487, 6.565, 8.189], index=Country_Names)
countries
# China 1.500
# United States 10.530
# Japan 7.542
# United Kingdom 3.487
# Russian Federation 6.565
# Brazil 8.189
# dtype: float64
countries.index[2]
# 'Japan'
countries.iloc[2]
# 7.542
不过,我不确定如何构建一个数据对象,该对象可以像您在问题中看到的表格一样打印出来。
编辑
这是如何做到的。 创建一个带有名称的索引并将该索引赋予一个系列:
Country_Names = pd.Index(['China', 'United States', 'Japan', 'United Kingdom', 'Russian Federation', 'Brazil'],
name='Country_Names')
countries_s = pd.Series([1.5, 10.53, 7.542, 3.487, 6.565, 8.189], index=Country_Names)
countries_s
# Country_Names
# China 1.500
# United States 10.530
# Japan 7.542
# United Kingdom 3.487
# Russian Federation 6.565
# Brazil 8.189
# dtype: float64
这几乎证实了您正在使用一个系列。 我不确定无论如何都可能有一个带有未命名列的数据框。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.