Как я могу векторизовать цикл над DataFrame Pandas в Python? - PullRequest
0 голосов
/ 07 января 2019

Мне нужно, чтобы этот код работал быстро с помощью векторизации

final1 = pd.DataFrame()
for index, row in demo1.iterrows():
    a = np.random.choice([0, 1], size=1000, p=[1 - row['prob'], row['prob']])
    b = a * row['syb'] * (1 + row['percentage_change_syb'] / 100)
    final1 = final1.append(pd.DataFrame(b).T)

1 Ответ

0 голосов
/ 07 января 2019

Поскольку вы не предоставили данные для работы, следующий код не проверен, но должен работать:

def computation(prob, syb, percentage_change_syb):
    a = np.random.choice([0, 1], size=1000, p=[1 - prob, prob])
    b = a * syb * (1 + percentage_change_syb / 100)
    return b.T

final1 = computation(demo1['prob'].values, demo1['syb'].values, demo1['percentage_change_syb'].values)

Для получения дополнительной информации о выборе работы с массивами NumPy я рекомендую эту статью .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...