鉴于此代码:
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,都会这样做。
答案 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,而非系列。对于系列,你必须重新定义它。