pandas DF列递归地显示值对之间的最大差异

时间:2017-09-15 08:28:10

标签: python pandas dataframe difference

我有一个带有列' col1'的数据框架。有整数。 DF可以具有100到1mln的任何行。 如何计算col1中值对之间的差异,例如:

row2 - row1 row3 - row2 row4 - row3 等

并返回最大差异?

我知道如何使用loc,iloc但不知道如何强制它通过一对值并转移到下一对

1 个答案:

答案 0 :(得分:1)

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

函数shift取下一行的值(如果你做shift(-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,取最大值并获得最大差值。