У меня сейчас есть функция и цикл. Цель состоит в том, чтобы просмотреть каждый столбец в кадре данных и, если значение индекса меньше значения, определенного functino, дать значение 0, если не оставить в качестве текущего значения.
Работает, но бегать долго. Кто-нибудь может увидеть лучший путь? Я чувствую, что должен использовать loc или iloc, но не уверен, как применить
df = pd.DataFrame(np.random.randint(0, 20, [5, 3]), columns=['A', 'B', 'C'])
A B C
0 6 19 14
1 10 7 6
2 18 10 10
3 3 7 2
4 1 11 5
def split(variable_name,sDate,eDate,df):
if eDate =='end':
lv=df.index[-1]
y=np.logical_and(df.index>=sDate, df.index<=lv)
df['newvar']=y.astype(int)*df[variable_name]
else:
lv=eDate
y=np.logical_and(df.index>=sDate, df.index<=eDate)
df['newvar']=y.astype(int)*df[variable_name]
return df
for i in df.columns:
split(i,1,'end',df)
выход
A B C
0 0 0 0
1 0 0 0
2 18 10 10
3 3 7 2
4 1 11 5