Python Pandas,具有先前行的最小值的新列

时间:2019-03-21 19:11:43

标签: python python-3.x pandas

我正在尝试创建一个新列,该列的值将是现有列中所有先前行的最小值。

例如: 这是我的数据框:

    A  nbr
0  AA    4
1  AB    5
2  AC    2
3  AD    5
4  AE    3
5  AF    6
6  AG    1
7  AH    4

我正在尝试使用nbr列添加新列'nbr_min'。

因此nbr_min的第一行为4,因为这是他的第一行,最小值4为4。
第二行是4和5的最小值,即4。 第三行的最小值为4,5和2,即2。 等等... 最终结果应如下所示。
enter image description here

我很难用python(使用pandas)来做到这一点。任何帮助将不胜感激。 我非常接近得出的结论是,python无法做到这一点。因此,也欢迎采用任何其他方式的解决方案。

1 个答案:

答案 0 :(得分:1)

使用series.cummin()

df['nbr_min']=df.nbr.expanding().min()

或者:

df['nbr_min']=df.nbr.cummin()
print(df)

    A  nbr  nbr_min
0  AA    4        4
1  AB    5        4
2  AC    2        2
3  AD    5        2
4  AE    3        2
5  AF    6        2
6  AG    1        1
7  AH    4        1