Python中的Dataframe包含以下数字数据
mydf=
mydate mytime myopen High Low myclose
---------- ----------------------- ---------------------- ---------------------- ---------------------- -----------
2019-04-15 1900-01-01 15:25:00.000 1675.75 1679.75 1673.35 1673.35
2019-04-15 1900-01-01 15:25:00.000 142.75 142.8 142.25 142.45
2019-04-15 1900-01-01 15:25:00.000 387 387.5 385.7 387.05
2019-04-15 1900-01-01 15:25:00.000 54.7 54.7 54.45 54.45
2019-04-15 1900-01-01 15:25:00.000 1026.1 1028 1026.1 1027.15
2019-04-15 1900-01-01 15:25:00.000 53.65 53.75 53.5 53.7
我需要创建一个名为newcol的计算列,它的计算将基于一个条件。条件是哪些列的值更高—myopen/myclose。对于更高的价值观,我相信np.fmax公司函数对我的情况很好。
因此,对于上述数据框中的每个记录。。。你知道吗
If myopen >= myclose:
mydf['newcol']= myopen X 6 + 4 * High + (High - myclose)
else:
mydf['newcol']= myclose X 3 + 4 * myclose + (myclose - myopen)
我相信通过穿越mydf可以达到上述目的, 不过,我也觉得应该有一个更有效的方法来实现这一点。你知道吗
我将感谢上述帮助,因为我仍然是一个新手。你知道吗
Thx在adv。你知道吗
除了
numpy.where
之外,您还可以使用loc
函数和条件来实现这一点,如下所示:或者,如果函数变得更复杂,可以使用
dataframe.apply
。e、 g您可以使用
np.where
:相关问题 更多 >
编程相关推荐