我需要用一个额外的比较来更新一个框架列。我用一个for循环来处理这个问题,
import pandas as pd
df = pd.DataFrame({'Signal':[1,1,1,0,0,0,0,0,0,1],'F1':[5,5,5,5,5,5,5,5,5,5],'F2':[5,5,5,5,5,6,4,4,4,4]})
for i in range(1,len(df)):
if (df['Signal'].iloc[i-1] == 1) & (df['F1'].iloc[i]<=(df['F2']).iloc[i]):
df['Signal'].iloc[i] = 1
for循环检查之前的状态,然后检查我的条件并更新“Signal”列。在一个只有几千行的嵌套框架中,这个操作开始比我希望的要多。我希望优化代码,但不知道如何。
到目前为止,我有这个列表理解,它给予了我更新的值,但不是我应该更新的位置。也不确定它是否比我的循环更快的解决方案
[1 for i in range(1,len(df)) if (df['Signal'].iloc[i-1] == 1) & (df['F1'].iloc[i]<=(df['F2']).iloc[i]) ]
1条答案
按热度按时间zpgglvta1#
验证码
产出: