Numpy где эквивалент функции в pandas - PullRequest
1 голос
/ 08 января 2020

Я добавляю новый столбец на основе некоторого условия для ряда.

У меня есть оператор numpy .where, как показано ниже:

df['New_Col']= np.where(df['Name']=='John', df['Class'], 'Unknown')

Но это отнимает много времени на большие данные, поэтому я пытался выполнить sh то же самое, используя функцию pd.Series.apply, как:

df['New_Col'] = df['Name'].apply(lambda name: df['Class'] if name == 'John' else 'Unknown')

Но его назначение целой серии всякий раз, когда выполняется условие, но в идеале Я хочу назначьте только эквивалентную строку для этой итерации

Пожалуйста, дайте знать, если у кого-то есть какие-либо данные по этому же поводу, или исправьте меня, чтобы заменить np.where гораздо более эффективным способом

Заранее спасибо .

1 Ответ

1 голос
/ 08 января 2020

Решение Dask:

На самом деле вам не нужно использовать функцию where:

df['New_Col'] = df['Class'][df['Name']=='John']

Затем заполните значения NaN желаемым значением:

df['New_Col'] = df['New_Col'].fillna('Unknown')
...