Панды, получите элементы в определенном порядке

У меня есть датафрейм для панд

col1    col2
Apple     70
Lemon     80
Banana    90

и у меня есть список с элементами col1 в определенном порядке:

my_list = ['Banana', 'Apple', 'Lemon']

Мне нужно получить значения col2 в следующем порядке: my_list

result = [90, 70, 80]

Как я мог этого достичь? Благодаря

PS: я вижу несколько решений моей проблемы, поэтому, возможно, я упростил ее, потому что некоторые из решений не будут эффективными для моей реальной проблемы (моя ошибка в упрощении).

Проблема немного сложнее, у моего dataframe больше столбцов и много строк.

col1    col2   col3
Apple     70   red
Lemon     80   red
Banana    90   red
Lemon     2    blue
Apple     3    blue
Banana    4    blue
Lemon     67   green
Banana    68   green
Apple     69   green

В основном значения col1 повторяются для каждого значения col3 (но порядок может быть другим!)

Мне нужно, чтобы каждое значение col3 получало вектор значений из col2, но всегда в том же порядке.

Итак, я получаю my_list, выполнив:

my_list = np.unique(df['col2'])

и затем я выполняю итерацию для каждого элемента col3, получая простой пример, который я разместил.

Это не меняет ответы, но я мог бы выбрать тот или иной с учетом всей картины.

4 голоса | спросил Sembei Norimaki 18 Maypm18 2018, 14:54:06

3 ответа


0
Вы можете создать серию и использовать ---- +: = 0 =: + ---- .Это должно быть более эффективно, чем сортировка с использованием ---- +: = 1 =: + ---- или списков.
ответил jpp 18 Maypm18 2018, 15:00:21
0
Панды 0.15 представили категорические серии
ответил Jonathan DEKHTIAR 18 Maypm18 2018, 14:55:49
0
---- +: = 0 =: + ---- имеет «встроенные» методы сортировки, попробуйте это:
ответил akshat 18 Maypm18 2018, 14:57:13

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132