Use if conditions in Python to speed up progressive loops
I have a dataset of 6 million rows with columns:
open price, and
close price. I run the following loop, which is very simple, but takes a long time (if
open price is
close price from the previous line):
for i in range(0,len(price2)): print(i) if np.isnan(price3.iloc[i,2]): price3.iloc[i,2]=price3.iloc[i-1,3]
How can I speed up this cycle? As far as I know, I can change to
apply(), but how can I include an if condition in it?
You can use >pandas. Series.fillna instead of a transfer series for loops with closing prices.
price3['open price'].fillna(price3['close price'].shift(1), inplace=True)
This is vectorized, so it should be much faster than your for loop.
Note that I assume
price2 and price3 have the same length, and you can also iterate