python - 按标签选择的 Pandas 有时会返回 Series,有时会返回 DataFrame

标签 python pandas dataframe slice series

在 Pandas 中,当我选择索引中只有一个条目的标签时,我会返回一个系列,但是当我选择一个包含多个条目的条目时,我会返回一个数据框。

这是为什么呢?有没有办法确保我总是取回数据框?

In [1]: import pandas as pd

In [2]: df = pd.DataFrame(data=range(5), index=[1, 2, 3, 3, 3])

In [3]: type(df.loc[3])
Out[3]: pandas.core.frame.DataFrame

In [4]: type(df.loc[1])
Out[4]: pandas.core.series.Series

最佳答案

当然,这种行为是不一致的,但我认为很容易想象这样方便的情况。无论如何,要每次都获得一个 DataFrame,只需将一个列表传递给 loc。还有其他方法,但我认为这是最干净的。

In [2]: type(df.loc[[3]])
Out[2]: pandas.core.frame.DataFrame

In [3]: type(df.loc[[1]])
Out[3]: pandas.core.frame.DataFrame

关于python - 按标签选择的 Pandas 有时会返回 Series,有时会返回 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20383647/

相关文章:

python - 如何在 Ubuntu 上使用 Python 查找 Apache2 的配置错误?

python - 更改类继承自的类列表

python - 从灰度图片创建彩色图片

python - Pandas:根据开始和结束日期范围逐月求和

python - Pandas :旋转数据框

python - 查找 Pandas 中重复列的重复位置

Python:未正确调用 DataFrame 构造函数

python - 将非零列名转换为 Python 中的行

python - SSH:在终端中运行的 javac 命令在通过 SSH 执行时不起作用

python - 如何在一列上执行 pandas groupby 操作,但将另一列保留在生成的数据框中