-1

好吧,所以我希望我们不需要为此提供示例,但是假设我们有一个 DataFrame,其中包含 100k 行和 50+ 个 Index 实例是完全相同的 DateTime。

按时间对我的 DataFrame 进行排序的最快方法是什么,但是如果存在平局,请选择第二列进行排序。

所以:

Sort By Time
If Duplicate Time, sort by 'Cost'
4

1 回答 1

3

如果您按您希望它们排序的顺序传递列列表,它将按第一列排序,然后是第二列

df = DataFrame({'a':[1,2,1,1,3], 'b':[1,2,2,2,1]})

df

Out[11]:

   a  b
0  1  1
1  2  2
2  1  2
3  1  2
4  3  1

In [13]:

df.sort(columns=['a','b'], inplace=True)

df

Out[13]:

   a  b
0  1  1
2  1  2
3  1  2
1  2  2
4  3  1

所以对于你的例子

df.sort(columns=['Time', 'Cost'],inplace=True)

会工作

编辑

它指出(@AndyHayden)如果您在补充列中嵌套了 NaN,则存在错误,请参阅此SO并且存在GitHub 问题,这在您的情况下可能不是问题,但需要注意。

于 2013-10-08T20:37:43.823 回答