获取列的当前最大值并使用熊猫输入到新列中



我正在尝试获取熊猫中列的当前最大值。例如,我想[ask]列并创建一个新的列[high_of_day],以显示到目前为止 ask 列的最大值,并不断在[high_of_day]列中重复该最大值,直到 ask 列中出现更大的新值。

数据输入

data = [['9:00',1,0],['10:00',2,0],['11:00',3,0],['12:00',4,0],['13:00',2,0],['14:00',5,0]]
df3 = pd.DataFrame(data, columns=['DateTime','Ask','High_of_Day'],dtype=float)

输出

  DateTime  Ask  High_of_Day
0     9:00  1.0          0.0
1    10:00  2.0          0.0
2    11:00  3.0          0.0
3    12:00  4.0          0.0
4    13:00  2.0          0.0
5    14:00  5.0          0.0  

我尝试使用各种循环,但似乎无法正确。

我试图得到的预期结果是:

  DateTime  Ask  High_of_Day
0     9:00  1.0          1.0
1    10:00  2.0          2.0
2    11:00  3.0          3.0
3    12:00  4.0          4.0
4    13:00  2.0          4.0
5    14:00  5.0          5.0

任何关于获得正确算法的帮助将不胜感激,谢谢!

选项 1
pd.Series.cummax

s = df3.Ask.cummax()
print(s)
0    1.0
1    2.0
2    3.0
3    4.0
4    4.0
5    5.0
Name: Ask, dtype: float64
df3['High_of_Day'] = s
print(df3)
  DateTime  Ask  High_of_Day
0     9:00  1.0          1.0
1    10:00  2.0          2.0
2    11:00  3.0          3.0
3    12:00  4.0          4.0
4    13:00  2.0          4.0
5    14:00  5.0          5.0

选项 2
np.maximum.accumulate

df3['High_of_Day'] = np.maximum.accumulate(df3.Ask)
print(df3)
  DateTime  Ask  High_of_Day
0     9:00  1.0          1.0
1    10:00  2.0          2.0
2    11:00  3.0          3.0
3    12:00  4.0          4.0
4    13:00  2.0          4.0
5    14:00  5.0          5.0

相关内容

  • 没有找到相关文章

最新更新