В последнее время я работаю с двумя Сериями в пандах:
- Первая серия содержит чисто числовые данные
- Вторая серия содержит категориальные данные: «Плюс», «Минус» и NaN.
Пример данных:
first_series = pandas.Series([0.000003, 0.004991, 0.004991])
second_series = pandas.Series(["Plus", "Minus", np.nan], dtype="object",
index=first_series.index)
(в реальном сценарии вторая серия создается программно с использованием того же индекса, что и первый, но здесь это только упрощенный пример)
Сначала я делаю некоторые манипуляции:
first_series = np.log2(1 / first_series)
Тогда мне нужно будет инвертировать знак (умножить на -1) соответствующих записей «минус» и повернуть на NaN
те, которые во второй серии NaN
.
Последняя часть работает нормально:
first_series[np.invert(second_series.notnull())] = np.nan
print first_series
0 18.567557
1 7.646459
2 NaN
Name: Example data
Однако я немного застрял с первой частью. Как я могу использовать информацию во второй Серии (учитывая, что они индексируются одинаково) для переключения знака в первой Серии?
Для справки после приложения first_series должен выглядеть так:
0 18.567557
1 -7.646459
2 NaN
Name: Example data