好像语句和循环非常慢,而且很难计算,我正在尝试思考如何重写我想要建立的条件。你知道吗
df = pandas.DataFrame()
df['x'] = [1.2, 1.5, 1.7, 1.9]
df['y'] = [1.7, 1.8, 0.7, 1.4]
print(df)
x y
0 1.2 1.7
1 1.5 1.8
2 1.7 0.7
3 1.9 7.0
我想做的是建立一个条件来验证df.y
是否会小于df.x
,如果这是真的,那么用两个索引的减法来创建一个新列。你知道吗
例如
df.y[0] < df.x[0]
如果不是
然后检查if df.y[0] < df.x[1]
如果这是真的,那么df.new[0] = 1 - 0;
移到下一个值:df.y[1] < df.x[1]
如果不是,那么检查if df.y[1] < df.x[2]
如果是真的,那么df.new[1] = 2 - 1
。你知道吗
如果df.y[i]
的值总是大于任何df.x[n]
值,则将其作为False
附加到df.new[i]
。你知道吗
这种情况下的输出应该是这样的
x y new
0 1.2 1.7 3
1 1.5 1.8 2
2 1.7 0.7 0
3 1.9 7.0 False
其中df.new
是df.x
的指数和df.y
的指数之间的差值,我们试图证明,如果df.x
会低于df.x
你知道吗df.新可能意味着无论指数是什么,如果指数是时间df.新表示df.y
将低于df.x
的第一次。你知道吗
下面的方法是可行的,但这实际上是一个循环,因为它使用
apply
:相关问题 更多 >
编程相关推荐