2017-09-15 12 views
0

私はそれに整数の列 'col1'を持つDataFrameを持っています。 DFには、100から1mln行までのものがあります。 ROW1 ROW3 - - ROW2 ROW4 - ROW3 などpandas DF列の値の対の再帰的な最大差

と返す最大の違い

行2: はどのようなCOL1の値のペアの間の差を計算するには?

私はLOCを使用する方法を知っている、ILOCが、一対の値を通過し、次のペアに

+2

'df ['col1']。diff()。max()'? – Zero

+0

私はペアリングを逃した...ええと、@ジョンガルトは言った。 – piRSquared

+0

Arghh .... PYTHON言語の場合、PYTHONにタグを付けるのはどれくらい難しいですか? –

答えて

1
max(df[col_name].shift(-1)-df[col_name]) 

を移動するためにそれを強制する方法がわからない機能シフトは次の行の値をとる(または2番目の次の行はシフト(-2)をします)。 df [col_name] .shift(-1)を実行すると、その行の下の行にある値を特定の行にとります。 df [col_name] .shift(-1)の値から現在の値を取り除くと、行ごとに行の違いが表示されます。したがって、データフレームでは、行間の一連の違いに終わるでしょう。最大値を取ると最大値を取得します。

Example below col_1 == Original column, col_2 == df[col_1].shift(-1) 


> col_1 | col_2 
> 123 | 456 
> 456| 999 
> 999| nan 

ここで、col_2からcol_1を差し引いてmaxを取って最大差を求めます。

+0

答えがどのように問題を解決するのか説明してください。 – Haris

+0

関数shiftは次の行の値をとります(shift(-2)を実行すると2番目の次の行)。 df [col_name] .shift(-1)を実行すると、その行の下の行にある値を特定の行にとります。 df [col_name] .shift(-1)の値から現在の値を取り除くと、行ごとに行の違いが表示されます。したがって、データフレームでは、行間の一連の違いに終わるでしょう。最大値を取ると最大値を取得します。 – 5nv

+0

それは良いです。私はあなたの答えを編集し、この説明をそこに追加すれば、その方が良いと思います。 – Haris

関連する問題