如何在Pandas Dataframe中找到“n”个数据行的最小值或最大值?

时间:2016-12-30 22:58:20

标签: python pandas

我无法在任何地方找到答案。我需要找到一列的最小值,比如说A,最后n行。

我看到了一些解决方案,我可以找到整列的最小值或不同的列,但是找不到计算某些窗口的列的最小值(或最大值)的方法。

e.g。

     A   B   C   D   Amin10   Bmax5
0   13  13  10   4
1    8   0  15  14
2   12   7   7   9
3   22  11  22   2
4    2   2  12   3
5   18  24  20  14
6    6  18  20  22
7    3   8   2  13
8   21   9  11   4
9    2   2  14  21
10  15   0   9  17
11  11  19  22   2
12  18   2  10  13
13  14  20  20  10
14   8   8  22  16

假设我想要一个列'Amin10',它在最后10行中具有A列的最小值,而'Bmax5'在最后5行中具有B列的最大值。

我怎样才能做到这一点?

感谢。

1 个答案:

答案 0 :(得分:3)

使用rolling

df['Amin10'] = df.A.rolling(10).min()
df['Bmax5'] = df.B.rolling(5).max()
print(df)

     A   B   C   D  Amin10  Bmax5
0   13  13  10   4     NaN    NaN
1    8   0  15  14     NaN    NaN
2   12   7   7   9     NaN    NaN
3   22  11  22   2     NaN    NaN
4    2   2  12   3     NaN   13.0
5   18  24  20  14     NaN   24.0
6    6  18  20  22     NaN   24.0
7    3   8   2  13     NaN   24.0
8   21   9  11   4     NaN   24.0
9    2   2  14  21     2.0   24.0
10  15   0   9  17     2.0   18.0
11  11  19  22   2     2.0   19.0
12  18   2  10  13     2.0   19.0
13  14  20  20  10     2.0   20.0
14   8   8  22  16     2.0   20.0