Замените pandas iterrows () на apply & lambda - PullRequest
0 голосов
/ 19 декабря 2018

Рабочий код для добавления нового столбца в Pandas DataFrame с помощью iterrows ().Но это очень медленно

df1['Kite_Token'] =0

for row,col in df.iterrows():
    df1.loc[row, 'Kite_Token'] = df_instrument[(df_instrument.exchange_token==col.SC_CODE) & (df_instrument.exchange == 'BSE')].instrument_token.to_string(index=False)

Вот моя попытка использовать apply и lambda для приведенного выше кода, но я получаю предупреждение о копировании.Есть ли более быстрый способ выполнить без предупреждения?

df1['Kite_Token']= df1['SC_CODE'].apply(lambda x : df_instrument[(df_instrument.exchange_token==x) & (df_instrument.exchange == 'BSE')].instrument_token.to_string(index=False))

SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...