0
我必須使用apply來訪問當前行的值和先前計算的值。以下是代碼片段。我如何優化此代碼以更快地工作?使用pandas訪問兩個軸應用函數
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,100,size=(30, 1)), columns=['ABCD'])
for idx in range(0, len(df)):
df.ix[idx, 'flag'] = 0
if 0 == idx:
continue
if df.ix[idx, 'ABCD'] >= 66:
df.ix[idx, 'flag'] = 1
elif df.ix[idx, 'ABCD'] <= 33:
df.ix[idx, 'flag'] = 0
else:
df.ix[idx, 'flag'] = df.ix[idx-1, 'flag']
print df
在這裏,我必須使用'ABCD'中的值。如果值大於66,則應將標誌設置爲1並且< 33,標誌應爲0. 對於其他值,它應該重複以前的標誌值。
請讓我知道如何優化此功能?
感謝。這樣做的工作速度非常快。 –