强制.pd返回DataFrame
当我在使用 .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