如何才能找到Pandas Dataframe中“n”行数据的列的最小值或最大值?
问题描述:
我无法在任何地方找到答案。我需要为列的最后n个行找到最小值,比如说A。如何才能找到Pandas Dataframe中“n”行数据的列的最小值或最大值?
我看到了解决方案,我可以找到整列或不同列的最小值,但找不到一种方法来计算只有特定行的窗口列的最小值(或最大值)。
例如
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”有B列在最后5行的最大值。
我该如何做到这一点?
谢谢。
答
使用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
您可以用'尾()'或'ILOC []'为了方法来访问最后行... – MaxU