[英]Why does `.keys()` return `Index` for a Pandas `DataFrame`?
我的最终目标是在取了一些组的平均值之后,通过组标签获得特定的值。 为此,我想获取一个列名列表,以便选择具有我感兴趣的组标签的列。但是,所得DataFrame
的行为与预期DataFrame
:
import pandas as pd
df = pd.DataFrame({'x': ['a','b','c','a','b','c'], 'y': [1, 2, 3, 4, 5, 6]})
means = df.groupby('x').mean()
type(means)
给出pandas.core.frame.DataFrame
means.keys()
给出Index(['y'], dtype='object')
但是, keys
方法的文档说:
获取“信息轴”(有关更多信息,请参见索引)
这是Series的索引,DataFrame的列,Panel的major_axis。
mean.keys()
的结果似乎与此矛盾,因为mean
是一个DataFrame
但它返回的Index
就像是Series
。 这是预期的行为吗? 如果确实是一个系列,我可以很容易地查找所需的值,但是在大多数方面它仍然像DataFrame一样。
这是Python 3.7.3上的pandas 0.24.2
您的groupby语句的结果确实是一个数据帧。 它是一列数据框,但仍然是数据框。
因此,当您使用keys方法时,您应该获得columns标签,在这种情况下为“ y”
means.keys()
Index(['y'], dtype='object')
每当您在数据框中选择单个列时,pandas都会返回一个序列。 因此,选择列“ y”并使用键应返回索引。
means['y'].keys()
Index(['a', 'b', 'c'], dtype='object', name='x')
在这种情况下,术语“索引”令人困惑,因为“熊猫”中的列和行都是索引项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.