この場合、複数のポイントから選択/スライスを選択するには、すべての列に対してmax()
から開始します。各株はそれ自身の最大値を有するので、その特定の地点から選択を開始する。 パンダの異なるポイントから行を選択する方法
df
>>> TSLA MSFT
2017-05-15 00:00:00+00:00 314 68
2017-05-16 00:00:00+00:00 319 69
2017-05-17 00:00:00+00:00 320 61
2017-05-18 00:00:00+00:00 313 66
2017-05-19 00:00:00+00:00 316 70
2017-05-22 00:00:00+00:00 314 65
2017-05-23 00:00:00+00:00 310 63
max_idx = df.idxmax() # returns index of max value
>>> TSLA 2017-05-17 00:00:00+00:00
>>> MSFT 2017-05-19 00:00:00+00:00
max_value = df.max() # returns max value
>>> TSLA = 320
>>> MSFT = 70
は使用してのような彼らのいずれかの方法で、私は後でMAX_VALUEを見つけることができるようにして、もう一度、この新しい出力から始まるmax_idxに出力したい
df2 = df.loc[max_idx:]
、
TSLA 2017-05-17 00:00:00+00:00
MSFT 2017-05-19 00:00:00+00:00
EDITです:次の出力を期待しています:
df2
>>> TSLA MSFT
2017-05-17 00:00:00+00:00 320 2017-05-19 00:00:00+00:00 70
2017-05-18 00:00:00+00:00 313 2017-05-22 00:00:00+00:00 65
2017-05-19 00:00:00+00:00 316 2017-05-23 00:00:00+00:00 63
2017-05-22 00:00:00+00:00 314
2017-05-23 00:00:00+00:00 310
@UnutbuがMultindexingを使用するのと同様に、可能であれば新しいデータフレームをマルチインデックス化することができます。
たとえば、私は2列しか投稿しませんでしたが、その列の数は100であり、 なので、このような大きなデータに注意してください。ありがとう! (あなたは、どちらか一方を選択することができ、両方の最大値よりも大きいタイムスタンプを持つあなたに行を与える
df[(df.index > max_idx.TSLA) & (df.index > max_idx.TSLA)]
、私は:
を? – MaxU
@MaxU pd.read_clipboard()はあなたの友人です。 – Stael
私はどんな形式の出力も受け入れることができます。ちょうど 'TSLA 2017-05-17 00:00:00 + 00:00から始まる最大値を見つけることができます。 MSFT 2017-05-19 00:00:00 +00:00' @MaxUあなたはどんな形式でも自由に使うことができます。 – ArJuN