Python:从特定点排序
我想用这种方式对这些数据进行排序, 例如,我有一个值<代码>2017-06-09 376.87我想开始从该特定值的索引(即2017-06-09)中对值进行降序排序。但是我想限制sort函数在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
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吗?