Python:从特定点排序

Python:从特定点排序,python,pandas,sorting,numpy,dataframe,Python,Pandas,Sorting,Numpy,Dataframe,我想用这种方式对这些数据进行排序, 例如,我有一个值2017-06-09 376.87我想开始从该特定值的索引(即2017-06-09)中对值进行降序排序。但是我想限制sort函数在2017-06-09index之前访问或迭代,我的意思是,它不应该对这些日期或值进行排序或访问 Highs Date 2017-06-01 344.88 2017-06-02 342.88 2017-06-05 348.44 2017-06-06 359.49 2

我想用这种方式对这些数据进行排序, 例如,我有一个值<代码>2017-06-09 376.87我想开始从该特定值的索引(即2017-06-09)中对值进行降序排序。但是我想限制sort函数在
2017-06-09
index之前访问或迭代,我的意思是,它不应该对这些日期或值进行排序或访问

               Highs
Date
2017-06-01    344.88
2017-06-02    342.88
2017-06-05    348.44
2017-06-06    359.49
2017-06-07    360.50
2017-06-08    371.90
2017-06-09    376.87
2017-06-12    364.50
2017-06-13    376.00
2017-06-14    384.25
2017-06-15    375.46
并且仅在
2017-06-09
之后对值进行排序或访问

编辑1

我用

2017-06-05    348.44
2017-06-06    359.49
2017-06-07    360.50
2017-06-08    371.90
Highests\u索引
返回0、1、2……等值,而不是2017-06-01等日期 如何使用索引0,1,2..对这些进行排序。。?根据我前面解释的标准

编辑2:

现在我知道如何从特定的索引开始排序,但还有一个小问题,
如果
d=2017-06-02
我们使用
df.loc[d:,'High']=df.loc[d:,'High'].sort_values().values
从该点开始排序。但是如果我想开始排序,比如说
d+5
(2017-06-02
+
5)如何做,这样我就可以从
2017-06-09
5索引开始。 因为无法添加日期

注意:日期(索引)为日期时间格式。

您需要和,但排序后
索引
值发生更改,因此需要分配numpy数组:

df.loc['2017-06-09':,] = df.loc['2017-06-09':,].sort_values(by = 'highs')
编辑:

要检查第二大索引值,请使用,然后选择by
[-2]

print (df.loc['2017-06-09':,'Highs'].sort_values())
Date
2017-06-12    364.50
2017-06-15    375.46
2017-06-13    376.00
2017-06-09    376.87
2017-06-14    384.25
Name: Highs, dtype: float64

df.loc['2017-06-09':, 'Highs']= df.loc['2017-06-09':,'Highs'].sort_values().values
print (df)
             Highs
Date              
2017-06-01  344.88
2017-06-02  342.88
2017-06-05  348.44
2017-06-06  359.49
2017-06-07  360.50
2017-06-08  371.90
2017-06-09  364.50
2017-06-12  375.46
2017-06-13  376.00
2017-06-14  376.87
2017-06-15  384.25
您需要and,但排序后
索引
值发生更改,因此需要分配numpy数组:

df.loc['2017-06-09':,] = df.loc['2017-06-09':,].sort_values(by = 'highs')
编辑:

要检查第二大索引值,请使用,然后选择by
[-2]

print (df.loc['2017-06-09':,'Highs'].sort_values())
Date
2017-06-12    364.50
2017-06-15    375.46
2017-06-13    376.00
2017-06-09    376.87
2017-06-14    384.25
Name: Highs, dtype: float64

df.loc['2017-06-09':, 'Highs']= df.loc['2017-06-09':,'Highs'].sort_values().values
print (df)
             Highs
Date              
2017-06-01  344.88
2017-06-02  342.88
2017-06-05  348.44
2017-06-06  359.49
2017-06-07  360.50
2017-06-08  371.90
2017-06-09  364.50
2017-06-12  375.46
2017-06-13  376.00
2017-06-14  376.87
2017-06-15  384.25

这很快,让我试试看,我会告诉你它是否对我有效。兄弟只是添加。转换('max')这很快,让我试试看,我会告诉你它是否对我有效。兄弟只是添加。转换('max')谢谢你的回答,我已经稍微编辑了我的任务,你能看看编辑后的问题吗?我试图从一个特定的索引开始得到最大值。棒极了,再加上一个sirWow,太完美了。非常感谢兄弟@BlueQuant-很高兴能帮上忙@jezrael我又有一个小问题,你能检查编辑2吗?谢谢你的回答,我已经稍微编辑了我的任务,你能看看编辑后的问题吗?我试图从一个特定的索引开始得到最大值。棒极了,再加上一个sirWow,太完美了。非常感谢兄弟@BlueQuant-很高兴能帮上忙@jezrael我又有一个小问题,你能检查编辑2吗?