繁体   English   中英

为什么`.keys()`为熊猫`DataFrame`返回`Index`?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM