Проблема заключается в том, что у меня есть большой фреймворк (~ 300 000 строк) с несколькими строками для каждого объекта, представляющего заданное значение в разных условиях. Упрощенный вариант показан ниже:Добавить новый столбец в Pandas DataFrame с данными кодирования из отдельного DataFrame без использования Loop?
In [12]: df1
Out[12]:
SubID Condition Value
0 1 1 0.123
1 1 2 0.234
2 2 1 0.345
3 2 2 0.456
4 3 1 0.567
5 3 2 0.678
6 4 1 0.789
У меня также есть вторая таблица с только 80 нечетных строк, который содержит генетическую группу, что субъект принадлежит.
Я хочу добавить эти данные в первый DataFrame. Упрощенная версия таблицы кодирования приведен ниже:
In [17]: df2
Out[17]:
Subject Number Genetic Group
0 1 A
1 2 C
2 3 A
3 4 B
То, что я хочу, чтобы в конечном итоге это:
In [19]: df1
Out[19]:
SubID Condition Value Genetic Group
0 1 1 0.123 A
1 1 2 0.234 A
2 2 1 0.345 C
3 2 2 0.456 C
4 3 1 0.567 A
5 3 2 0.678 A
6 4 1 0.789 B
Я мог бы использовать для: петли, но задавался вопросом, как метод с использованием любого от слияния или присоединения Pandas DataFrame, которые могли бы избежать этого? Большое спасибо,
Спасибо, Максим. Я еще раз взглянул на ваш ответ сегодня (теперь я снова на ПК), и это имеет смысл. Я думаю, что это может быть полезно для других операций, которые мне нужно будет сделать позже, поэтому спасибо, что нашли время ответить. –
@PhilipLawrence Мне следовало добавить дополнительные комментарии, но не хватило времени. В основном ваши данные находятся в формате _narrow_. Сначала я конвертирую его в формат _long_, где каждый тип значения имеет свой собственный столбец, затем добавляет еще один столбец с категориями и затем преобразует его обратно в формат _narrow_. –