强制.pd返回DataFrame

6 投票
1 回答
1007 浏览
提问于 2025-04-18 06:42

当我在使用 .ix 和一个数据框(DataFrame)时,有没有办法让 pandas 总是返回一个数据框呢?

举个例子,如果我运行以下代码,

import pandas as pd
import numpy as np

df = pd.DataFrame(np.arange(6).reshape(3, 2), index=[0, 0, 1])
x = df.ix[0]
y = df.ix[1]

那么 x 会是一个数据框,因为索引中有两个 0,而 y 会是一个序列(Series),因为索引中只有一个 1。我希望 y 也能变成一个数据框(因为我在结果上使用 iterrows(),而这个方法不适用于序列)。

我可以检查 .ix 返回的类型,如果需要的话把它转换成数据框,但我觉得应该有更好的方法。

注意:从 Pandas v0.20 开始,.ix 已经被弃用,推荐使用 .iloc.loc

1 个回答

10

没错,可以用一个列表来索引它:

> x = df.ix[[0]]
> y = df.ix[[1]]
> type(x)
pandas.core.frame.DataFrame
> type(y)
pandas.core.frame.DataFrame

撰写回答