对于熊猫系列,不应该s.sort_index(inplace = True)改变s?

时间:2015-11-09 20:14:45

标签: python pandas

鉴于此代码:

s = pd.Series([1,2,3], index=['C','B','A'])
s.sort_index(inplace=True)

s现在不应该是这样的:

A    3
B    2
C    1
dtype: int64

当我运行时,s保持不变。也许我对inplace论证应该做什么感到困惑。我认为它应该改变调用该方法的系列。

对于记录,这确实会返回已排序的系列,但无论您是否将inplace设置为True,都会这样做。

2 个答案:

答案 0 :(得分:9)

你的期望确实是对的。然而,这还没有在0.17 / 0.17中的一个错误之前实现,忽略了这个关键字而不是引发错误(就像之前一样)。但修补程序将在即将发布的0.17.1版本中发布。

请参阅https://github.com/pydata/pandas/pull/11422

所以现在,最简单的方法是在没有inplace的情况下使用它:

In [4]: s = s.sort_index()

In [5]: s
Out[5]:
A    3
B    2
C    1
dtype: int64

答案 1 :(得分:2)

您需要有一个数据框:

s = pd.DataFrame([1,2,3], index=['C','B','A'])

s.sort_index(inplace=True)

s
Out[25]: 
   0
A  3
B  2
C  1
sort_index的{p> inplace适用于DataFrame,而非系列。对于系列,你必须重新定义它。